私は関係に属しているモデルを持っています。
class Product < ActiveRecord::Base
attr_accessible :name, :price, :request_id, :url
# Relationships
belongs_to :request
end
class Request < ActiveRecord::Base
attr_accessible :category, :keyword
# Relationships
has_many :products
end
これは私のコントローラー関数 product = Product.where({ :asin => asin }).first のコードです。
# See if the product exists
begin
#This throws a method not found error for where
product = Product.where({ :name => name }).first
rescue
Product.new
# This throws a method not found error for request_id
product.request_id = request.id
product.save
end
次のような新しい製品オブジェクトを作成しようとしています product = Product.first(:conditions => { :name => name })
undefined method 'first' for Product:Class
それを呼び出すと、Product.new を実行しようとしたときに属性にアクセスできないというエラーが表示されます。私はこれをすべての人に手に入れますundefined method 'request_id=' for #<Product:0x007ffce89aa7f8>
リクエスト オブジェクトを保存できました。製品の何が間違っていますか?
編集:
そのため、ActiveRecord クラスではない古い Product データ型がインポートされていたことが判明しました。私のProduct::ActiveRecordの代わりにそれを使用していました。そのインポートを削除しました。みんなの時間を無駄にしてごめんなさい。
この質問をどうするかについて、適切なプロトコルがここにあるかどうかわかりません。