このWebアプリケーションプロジェクトの私の目標の1つは、各テーラで製品を追加または作成することです。そこでMCV構造を最初から作成し、テーラーのサインアップページを作成しました。そして、製品を基本骨格CRUDは、テーラーによって使用されるので、私は製品を作成するために足場を足場にします。そして、私はそれらをhas_many/belongs_to関係に入れます。私は、tailor_idという列をProductクラスに追加する移行を生成しました。その後、私はこれらのネストされたルートを置く:その後、私は/テーラーを使用することにしました Ruby on Rails:親のIDを使用して新しい子インスタンスを作成する/関連付けられたクラスを使って作業する
resources :tailors do resources :products end resources :products #this is for debugging for whether a customer can see all the Products created by all the Tailors
が、私はすくいルートを走ったと私は与えられたtailor_idで製品を作成するために使用できるパス確認/:tailor_id/products/newだから、私はテーラーショーページにリンクするコードを追加しました:
<%= link_to 'Add Product', new_tailor_product_path(@tailor.id) %>
をし、私はこのようなパスが向けられているので、products_controller)に新しいと作成の機能を編集しました:
def new
@tailor = Tailor.find(params[:tailor_id])
@product = @tailor.Product.new(params[@tailor])
end
def create
@tailor = Tailor.find(params[:tailor_id])
@product = @tailor.Product.new()
@product.product_name = params[:product][:product_name]
@product.product_description = params[:product][:product_description]
@product.price = params[:product][:price]
@product.tailor_id = params[:product][@tailor]
@product.save
redirect_to "/tailors/#{@tailor}"
end
が、エラーが言う@product = @tailor.Product.new(params[@tailor])
が
私はクラスが正しいと確信しているので、なぜこれがエラーであるのか分かりません(クラスは大文字で始まり、単数でなければならないことが教えられています)。メソッドを呼び出す
親クラスとそのデータを呼び出すという概念を説明してください。 クラスとそのデータをこの場合はproduct_controllerに書き込むことはできませんか?私のアプローチは間違っているのですか、正しい方向に私はいますか?
はまた、私のコードの他の部分について、他の備考及び誤謬の訂正が
について読むことができますか? – lcguida
@Icguidaあなたは** tailor.rbの内容について尋ねている場合**、それはこのように、OS:私はproducts' 'end' : 'クラスの仕立て屋