ume*_*erh 1 ruby ruby-on-rails associations
我正在学习Rails和ActiveRecord的东西,但我有点困在这个小问题上.
让我们说你是一个产品(股票),每个产品都有颜色,通常正确的方法是建立一个关联.请看下面的代码:
class Stock < ActiveRecord::Base
attr_accessible :size, :colour_id
end
class Colours < ActiveRecord::Base
belongs_to :stock
end
Run Code Online (Sandbox Code Playgroud)
实际上我想要做的是
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
Run Code Online (Sandbox Code Playgroud)
实际上,查询应该是:
SELECT "colours".* FROM "colours" WHERE "colours"."id" = "stock"."colour_id"
Run Code Online (Sandbox Code Playgroud)
由于颜色在现实中都是独一无二的Stock商品的属性.如何以这种方式设置关联,以便我可以:
p @stock_item.colour.name
> Red
Run Code Online (Sandbox Code Playgroud)
谢谢.
乌默尔
你需要将一个belongs_to关联添加到库存而不是颜色,因为库存有colour_id
class Stock < ActiveRecord::Base
belongs_to :colour
end
Run Code Online (Sandbox Code Playgroud)
你最有可能想要一个关于颜色的has_many关联
class Colour < ActiveRecord::Base
has_many :stocks
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1325 次 |
| 最近记录: |