Я начал писать приложение, которое просматривает книги, статьи и т. д. (название модели: Piece) и имеет возможность просматривать главы или более мелкие разделы (модели разделов, подразделов и подподразделов).
Я хочу иметь возможность создать общий обзор части, где все вложенные разделы, подразделы и подразделы и их атрибуты будут перечислены в одном представлении. Итак, мой файл route.rb выглядит так:
resources :pieces do
resources :sections do
resources :subsections do
resources :subsubsections
end
end
end
То, что я с тех пор узнал, небрежно, но уже слишком поздно для меня. На данный момент я смог сделать это из подразделов, потому что у него есть доступ ко всем родительским параметрам (piece_id, section_id и т. д.). Но это означает, что я должен прыгнуть вниз по дереву в представление Subsubsection, а затем перейти оттуда, в то время как я хотел бы иметь доступ ко всем этим параметрам из контроллера Piece, чтобы я мог прямо из представления Piece связать с более общий обзор, без необходимости проходить весь путь по цепочке.
Прошу прощения, если это простой вопрос, я только недавно начал.
Моим моделям нравится вот так:
class Subsubsection < ActiveRecord::Base
belongs_to :subsection
end
class Subsection < ActiveRecord::Base
belongs_to :section
has_many :subsubsections
end
class Section < ActiveRecord::Base
belongs_to :piece
has_many :subsections
end
class Piece < ActiveRecord::Base
has_many :sections
has_many :links
end
И способ, которым я сейчас получаю доступ к общему обзору, заключается в использовании действия индекса контроллера подразделов:
def index
@piece = Piece.find(params[:piece_id])
@section = @piece.sections.find(params[:section_id])
@subsection = @section.subsections.find(params[:subsection_id])
end
Мой взгляд обращается к нему следующим образом:
<p><%= link_to "'General Piece Overview", piece_section_subsection_subsubsections_path(@piece, @section, @subsection), class: 'section_name' %></p>
Вот ссылка на проект, вдруг поможет: