我正在研究Rails 3.2.6应用程序.我有一个Status模型,一个Event模型和一个Photo模型.
事件
Has_many :statuses
Run Code Online (Sandbox Code Playgroud)
状态
Belongs_to :event
Has_one :photo
Run Code Online (Sandbox Code Playgroud)
照片
Belongs_to :status
Run Code Online (Sandbox Code Playgroud)
我想获取属于所选事件的所有状态消息(这很好)但我也希望得到属于每个状态消息的照片.我怎样才能做到这一点?
这是我获取属于事件的状态消息的方式:
@event = Event.find_by_id (params[:event_id])
@event.statuses
Run Code Online (Sandbox Code Playgroud)
如何在输出中获取每条状态消息的关联照片?我已经开始了,我想我应该做这样的事情?但是这只能得到照片并且不会将它们与各自的状态信息"合并".
@photos = @event.statuses.collect {|status| status.photo}
Run Code Online (Sandbox Code Playgroud)
如果您想减少查询,可以执行以下操作
@statuses = Status.where(:event_id=>params[:event_id]).includes(:photo).all
Run Code Online (Sandbox Code Playgroud)
然后你就可以这样访问了
@statuses.each do |status|
status.event_id # access the status
status.photo # access the photo
# status.nil? will check whether photo is there or not
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2459 次 |
| 最近记录: |