我正在开发一个有两个模型的项目:用户和城市。
class User < ActiveRecord::Base
belongs_to :city
end
class City < ActiveRecord::Base
has_many :users
end
我将城市作为整数(城市的主键)保存到用户。用户只能有一个城市,而城市表具有预先填充的值:
id | name
1 | New York
2 | Chicago
3 | Boston
我需要什么样的关联(并且可能),以便我可以调用类似下面的内容并获取城市而不是id?
user = User.find(id)
user.city
>> New York
答案 0 :(得分:1)
使用用户的实例,您只需拨打user.city.name
即可获取用户所在城市的名称:
user = User.find(1)
puts user.city.name
答案 1 :(得分:1)
认识到这已经得到了回答,我还要补充一点,如果你有很多逻辑要求这些数据不包含在模型本身中,那么添加一个调用关系的实例方法是有意义的。方法。如果该关系的性质发生变化,这样可以更容易地进行重构。