簡體   English   中英

如何從Ruby on Rails中的父控制器訪問嵌套資源參數?

[英]How to access nested resource parameters from parent controller in Ruby on Rails?

我開始編寫一個應用程序來審查書籍,文章等(型號名稱:Piece),並可以選擇查看章節或較小的部分(章節,子章節和子章節模型)

我希望能夠生成Piece的一般概述,其中所有嵌套的Sections,Subsections和Subsubsections及其屬性將在一個視圖中列出。 所以我的routes.rb文件如下所示:

  resources :pieces do
     resources :sections do
       resources :subsections do 
         resources :subsubsections
       end
     end
   end

從那以后我學到的是草率但現在對我來說太遲了。 現在,我已經能夠從子子部分執行此操作,因為它可以訪問所有父參數(piece_id,section_id等)。 但這意味着我必須將樹跳到子視圖部分視圖然后從那里開始,而我希望能夠從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

我現在訪問概述的方式是使用subsubsections控制器的索引操作:

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>

下面是該項目的鏈接,以防它有助於:

https://github.com/kingdavidek/StuddyBuddy

你的問題有一些內部緊張; 你說你想從PieceController訪問嵌套參數,但如果請求已被路由到PieceController ,那么這些嵌套參數將不會出現。 當存在嵌套參數時,請求將路由到請求提供參數的最特定控制器類。

如果問題可以PieceController “怎樣,從PieceController中我可以生成像目錄一樣的東西?” 答案看起來像這樣。

PieceController

def show
  @piece = Piece.find(params[:id]).include(sections: {subsections: :subsubsections}})
end

app/views/pieces/show.html.erb

<% @piece.sections.each do |section| %>
  <%= link_to piece_section_path(@piece, section), section.title %>
  <% section.subsections.each do |subsection| %>
    <%= link_to piece_section_subsection_path(@piece, section, subsection), subsection.title %>
    <% subsection.subsubsections.each do |subsubsection| %>
      <%= link_to piece_section_subsection_subsubsection_path(@piece, section, subsection, subsubsection), subsubsection.title %>
      <% end %>
    <% end %>
  <% end %>
<% end %>

這做了一些假設,但希望這個想法很清楚。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM