2017-12-22 5 views
0
<h2>New Product</h2> 

<%= form_for @product do|f| %> 
    <%= f.label :product_title %><br> 
    <%= f.text_field :product_title %><br> 
    <br> 
    <%= f.label :key_features %><br> 
    <%= f.text_area key_features %><br> 
    <br> 
    <%= f.label :price %> 
    <%= f.number_field :price %><br> 
    <br> 
    <%= f.label :colour %> 
    <%= f.number_field :colour %><br> 
    <br> 
    <%= f.label :main_material %> 
    <%= f.number_field :main_material %><br> 
    <br> 
    <%= f.submit %> 
<% end %> 


class ProductsController < ApplicationController 
    def home 
    @product = Product.all 
    end 
    def new 
    @product = Product.new 
    end 
end 

class CreateProducts < ActiveRecord::Migration 
    def change 
     create_table :products do |t| 
      t.string :product_title 
      t.text :key_features 
      t.integer :price 
      t.string :colour 
      t.string :main_material 

      t.timestamps null: false 
     end 
    end 
end 

なぜ私はそのエラーに直面していますか?製品の未定義メソッドnew:

+0

あなたは 'Product'モジュールをどこかに持っていて、あなたのactiverecordモデルをシャドーしています。それらの名前を変更します。 –

+0

'rails g model'コマンドを使って生成された' Product'モデルは、手動で作成しましたか? –

+0

@aneesは手動で作成しました – Wasi

答えて

0

あなたのアプリ名がProductであるため、このエラーが発生していると思います。デフォルトでは、アプリ名は予約済みのキーワードになります。名前を付けるためには使用できません。この場合、Productというモデル名を使用するには、product_appのようにアプリの名前を変更する必要があります。アプリの名前を変更するには、Renaming a Rails 4 appまたはHow to rename a rails 5 application?を参照してください。この助けを願っています。

+0

ええ、それでは、助けてくれてありがとうございます@AneesMuhammad ' – Wasi

+0

あなたは大歓迎です@ワシ。あなたは答えを受け入れることができればいいです..! –

+0

は既に承認されていますが、公に表示されるのは15の評判です。 – Wasi

0

あなたは私はあなたがモデルクラスを持っていけないとは思いませオートローディングので、モデルproduct.rbを必要とする@shingara答え

+0

私は手動で作成しました。 – Wasi

0

require 'product.rb' 

非常に良い説明のように、コントローラ上でこのファイルを強制する必要があります。

ファイルapp/model/product.rb

class Product < ApplicationModel 
end 
+0

が追加されましたが、まだエラーが発生しています。 – Wasi

関連する問題