1

Railsは初めてで、ネストされたリソースで作業を開始しました。私はこのhttp://guides.rubyonrails.org/routing.html#nested-resourcesを読んでいるので、製品と送信者の2つのモデルを作成しました。製品には多くの送信者がいます。私の送信者モデルはこれです:

class Sender < ActiveRecord::Base
  attr_accessible :product_id, :email, :name

  belongs_to :product
end

私の製品はこれです

class Product < ActiveRecord::Base
  attr_accessible :name, :price

   #Relationships !
   has_many :senders,  dependent: :destroy
end

私のroutes.rbで:

  resources :products do
     resources :senders
  end 

http://guides.rubyonrails.org/routing.html#nested-resourcesによると、今ではrakeroutesが適切なルートをすべて提供してくれます。

だから私がURLを入力すると

http://localhost:3000/products/1/senders/new

したがって、id = 1で製品の新しい送信者を作成します。これを取得します:

 NoMethodError in Senders#new

undefined method `senders_path' for #<#<Class:0x00000003fcf9d8>:0x00000003e6f408>

その製品の送信者のnew.html.erbページが表示されるのに、なぜこの未定義のメソッドを取得するのですか?

4

1 に答える 1

0

rake routesそうした場合、探しているルートが見つからないことに注意してください。これは、のルートsendersが内にネストされているためproductsです。

したがって、新しい送信者を作成する場合、パスはのようになりますnew_product_sender_path(product)

したがって、特定の製品のすべての送信者を取得するには、パスはになりますproduct_senders_path(product)

于 2012-08-25T10:18:20.283 に答える