2012-05-02 22 views
0

カテゴリと商品があります。カテゴリには多くの商品があります。私は編集を編集することができるカテゴリを作成する、また、各カテゴリの削除製品を作成することができますが、各製品を編集したい。 私はlink_toを使用して特定のカテゴリの単一の製品にアクセスでき、製品コントローラは特定のカテゴリの製品を受け取ります。すべての製品は、そのカテゴリの属するカテゴリーのHTMLでRailsでサブカテゴリを更新する方法

は、製品の

<%= link_to 'Edit', edit_category_product_path(product.category, product) %> 

コントローラーを持って、編集機能がある

@product = Product.where(params[:id]) 

はその後、私の編集HTMLは

<%= form_for @product do |f| %> 
<% if @product.errors.any? %> 
<div id="error_explanation"> 
    <h2><%= pluralize(@product.errors.count, "error") %> prohibited this product from  being saved:</h2> 

    <ul> 
    <% @product.errors.full_messages.each do |msg| %> 
    <li><%= msg %></li> 
    <% end %> 
    </ul> 
    </div> 
<% end %> 

<div class="field"> 
<%= f.label :name %><br /> 
<%= f.text_field :name %> 
</div> 
<div class="field"> 
<%= f.label :description %><br /> 
<%= f.text_area :description %> 
</div> 
<div class="field"> 
<%= f.label :price %><br /> 
<%= f.text_field :price %> 
</div> 

<div class="actions"> 
<%= f.submit %> 
</div> 
<% end %> 

<%= link_to 'Back', category_products_path %> 

Iであります製品を編集しようとするとこのエラーが発生する

NoMethodError in Products#edit 

Showing C:/Sites/propoolpro6/app/views/products/edit.html.erb where line #3 raised: 

undefined method `model_name' for ActiveRecord::Relation:Class 
Extracted source (around line #3): 

1: <h1>Editing product</h1> 
2: 
3: <%= form_for @product do |f| %> 
4: <% if @product.errors.any? %> 
5:  <div id="error_explanation"> 
6:  <h2><%= pluralize(@product.errors.count, "error") %> prohibited this product from being saved:</h2> 
Rails.root: C:/Sites/propoolpro6 

Application Trace | Framework Trace | Full Trace 
app/views/products/edit.html.erb:3:in `_app_views_products_edit_html_erb___584392485_32651052' 
Request 

Parameters: 

{"category_id"=>"1", 
"id"=>"3"} 

注::私は次の行がアレイ
@product = Product.where([ID]のparams)を作成すると思うこの2が、同じエラー、

<%= form_for(@product) do |f| %> 

答えて

0

を使用しています

これはform_helperで使用できませんでした(一般にActiveRecord関係で提供されているモデル名が必要です)。あなたは@productを調べて結果を確認できます。

あなたは

@product = Product.find(のparams [:ID])のような場所を見つけるの代わりに使用している場合ので、それは良いです

私はこの答えはあなたを助けるでしょう願っています。
ありがとうございます。

+0

#<#:0x3e50740> **のためのエラー**未定義のメソッド 'product_path '** – ALi

+0

このエラーが発生したときに、リンクをクリックするか、 –

+0

リンクを編集をクリックして... – ALi

関連する問題