ActiveRecord的珍藏级关系存取
给定一个模型事件,ActiveRecord的珍藏级关系存取
has_many :user_events
和模型UserEvent其
belongs_to :event
我可以从一个单一的事件对象来获取相关user_events,就像这样:
event = Event.find(1) user_events = event.user_events
但是有一个等效的关系存取器的事件集合?例如:
events = Event.where(:event_type => 'fun') user_events = events.user_events
这将返回属于使用类似的任何“有趣”的事件user_events。
SELECT user_events.* FROM user_events JOIN events on (events.id = user_events.event_id) where (events.event_type = 'fun');
回答:
没有,没有为事件的集合的关系访问。
在此期间,你可以这样做:
events = Event.includes(:user_events).where(:event_type => 'fun') user_events = events.map(&:user_events).flatten
的user_events
都渴望加载感谢includes(:user_events)
。这是常用的。
我们使用相同的逻辑,当我们做这样的事情(简体):
# controller @posts = Post.includes(:comments)
# view
<% @post.each do |post| %>
# display your post
<% post.comments.each do |comment| %>
# display each comment
<% end %>
<% end %>
以上是 ActiveRecord的珍藏级关系存取 的全部内容, 来源链接: utcz.com/qa/261117.html