我有一个关系,其中一个帖子属于一个城市,其属于一个状态:
class Post < ActiveRecord::Base
belongs_to :city
end
class City < ActiveRecord::Base
belongs_to :state
end
现在我想找到所有帖子以及他们的城市和所属的州。我写了下面的查询来获取他们的城市的帖子,但没有关于如何在同一个查找器中获取城市的相应状态的想法:
@post = Post.find:all,:include =&gt; [:城市]
感谢任何帮助。
感谢。
答案 0 :(得分:9)
Post.all( :include => { :city => :state })
答案 1 :(得分:4)
Rails将为您处理此问题,这要归功于belongs_to关系,此信息会自动获取。
@posts = Post.find(:all)
@posts
现在包含逻辑,以获取所有回复帖子的city
和city.state
详细信息。
如果您打算使用所有这些详细信息,您应该急切加载它们,:include => { :city => :state }
为Farrel并且表示格式化。
注意:为了让它以相反的方式工作(并且它也被认为是良好的模型定义行为),您还应该添加has_many
或has_one
关联。请参阅Association Basics Guide。