私は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"
色はすべて実際にはユニークであるため、ストックアイテムのプロパティです。この方法で関連付けを設定して、次のことができるようにするにはどうすればよいですか。
p @stock_item.colour.name
> Red
ありがとう。
Umer