我有一个属于关系的模型。Ruby On Rails Model没有方法
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.where({:ASIN => ASIN})第一
# 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.first(:条件=> {:名称=>名称})
当我打电话,我得到一个错误说undefined method 'first' for Product:Class
我试图这样做Product.new,我不能访问任何属性。我得到这个每个人undefined method 'request_id=' for #<Product:0x007ffce89aa7f8>
我已经能够保存请求对象。我在做什么产品有问题?
编辑:
所以事实证明有正被进口,这不是一个ActiveRecord类的旧产品的数据类型。它正在使用,而不是我的Product :: ActiveRecord。我删除了这个导入,这很好。抱歉浪费了大家的时间。
不知道这个问题该怎么处理。
'product = Product.where(:conditions => {:name => name})first' – 2013-02-26 01:50:41
你说你试图“创建一个新产品”,但你打电话给'.first',它是用于选择“产品”。如果你想用一个给定的名字来初始化一个新的Product,你应该使用下面的代码:'product = Product.new(:name => name)' – 2013-02-26 01:52:00
我试图创建一个新产品(空的)与Product.new。这不起作用。我尝试了Product.where,并得到了这个未定义的方法'Where'for Product:Class – smokingoyster 2013-02-26 01:57:00