我正在学习 Rails 和 ActiveRecord 的东西,但我有点卡在这个小问题上。
假设您是一个产品(库存),并且每个产品都有颜色,通常正确的方法是建立关联。请看下面的代码:
class Stock < ActiveRecord::Base
attr_accessible :size, :colour_id
end
class Colours < ActiveRecord::Base
belongs_to :stock
end
其实我想做的是
p @stock_item.colour.name
# But I get this error
SQLite3::SQLException: no such column: colours.stock_id: SELECT "colours".* FROM "colours" WHERE "colours"."stock_id" = 1 LIMIT 1
事实上,查询应该是:
SELECT "colours".* FROM "colours" WHERE "colours"."id" = "stock"."colour_id"
由于颜色在现实中都是唯一的 Stock 项目的属性。如何以这种方式设置关联,以便可以执行以下操作:
p @stock_item.colour.name
> Red
谢谢。
乌梅尔