我有以下型号:
rails generate model RoomType code:string description:text
class RoomType < ActiveRecord::Base
has_many :rooms
end
rails generate model room name:string code:string
class Room < ActiveRecord::Base
belongs_to :room_type, foreign_key: "code"
end
我想在Room
而非RoomType
上使用code
引用room_type_id
。
所以我@room.room_type.description
rooms/show.html.erb
undefined method description for nil:NilClass
RoomType
{{1}}只包含三个代码,即AAA,BBB,CCC
答案 0 :(得分:3)
不要创建名为“Type”的类。改变这个名字,也许是“善良”,我不知道。
答案 1 :(得分:0)
将其更改为最佳实践(将外键用作字符串不是最佳做法):
rails g migration add_room_type_id_to_rooms room_type_id:integer
class RoomType < ActiveRecord::Base
has_many :rooms
end
class Room < ActiveRecord::Base
belongs_to :room_type
end