2

私はhas_one関係を持っています:

# supplier.rb

  has_one :presentation
...

# presentation.rb

  belongs_to :supplier
...

そしてそれらのための次のネストされたルート:

# routes.rb

resources :suppliers do
  resource :presentation
end

実行rake routesすると:

    supplier_presentation POST ... {:action=>"create", :controller=>"presentations"}
 new_supplier_presentation GET ... {:action=>"new", :controller=>"presentations"}
edit_supplier_presentation GET ... {:action=>"edit", :controller=>"presentations"}
                           GET ... {:action=>"show", :controller=>"presentations"}
                           PUT ... {:action=>"update", :controller=>"presentations"}
                        DELETE ... {:action=>"destroy", :controller=>"presentations"}

ショーアクションにname_helperがないのはなぜですか?

私は次のようなことをして問題を無効にすることができます:

resources :suppliers do
  resource :presentation, :except => :show do
    get "" => "presentations#show", as: "presentation"
  end
end

ルートを与える:

presentation_supplier_presentation GET ... {:controller=>"presentations", :action=>"show"}

しかし、今ではそれはそれに対処する正しい方法ではありません。

助言がありますか?

-

(編集)

supplier_presentation_path(@supplier)

動作しますが、なぜですか?rake routes...シェルで実行すると表示されません...

4

2 に答える 2

3

表示されたときに表示されない理由はよくわかりませんrake routesが、コードで表示しようとしましたsupplier_presentation_path(@supplier)か?ルートに基づいて機能するはずです。

于 2011-08-11T16:46:15.723 に答える
0

それでも、それはあなたのために働くはずです。これを試して:

link_to "Presentation", [@suplier, @presentation]

また

link_to "Presentation", suplier_presentation_path(@suplier, @presentation)
于 2011-08-11T16:47:02.990 に答える