我有两个表:查询或迭代连接表中的ActiveRecord/Rails的
Venues
has_many :venue_intel_maps
VenueIntelMap
belongs_to :venue
在venue_intel_map表有一个列叫做:tag_label,我要抢具有各自特定的场地venue_intel_map
以我控制器低于该返回每个场地然后每个地点具有venue_id
的阵列def show
@venues = Venue.where(parent_venue_id: current_admin.parent_venue_id)
end
因此,在我的观点中,我可以为特定场地做到这一点。
- @venues.each do |venue|
=venue.name
=venue.address
=venue.location
但因为我想要去venue_intel_maps表,所以我可以叫一列名为:tag_label我想避免嵌套的每一个可能是这个样子
- @venues.each do |venues|
- venues.venue_intel_maps.each do |intel_maps|
= intel_maps.tag_label
说法是有无论如何,我可以清理这个或任何建议?我试图在活动记录中使用.joins或.select,但不知道如何成功地做到这一点,所以我可以以某种方式将我的Venues模型中的逻辑。
编辑
难道也更好不知何故在控制器我的场地做这个定义?在视图中,我将从我的venue_intel_maps表中抽取所有东西,这样可以带来什么好处?
@venues = Venue.joins(:venue_intel_maps).where(parent_venue_id: current_admin.parent_venue_id)
尝试场地=场地.includes(:venue_intel_maps)..在移动设备上似乎无法使用@ll – Mingsheng 2015-02-24 00:40:08
连接不会预先加载venue_intel_maps。要使用包括。但是,是的,在控制器中使用它。否则,你可以做什么messanjah建议 – Mingsheng 2015-02-24 01:10:47