使用指定的一组功能检索所有独特场地的最有效方法是什么?
在控制器中,我有:
@venues = Venue.all
@venues = @venues.features.where('feature.id == ' 1).distinct
以下是我的模型定义方式:
class Neighborhood < ActiveRecord::Base
has_many :venues
end
class Venue < ActiveRecord::Base
belongs_to :neighborhood
has_many :features
end
class FeatureType < ActiveRecord::Base
has_many :features
end
class Feature < ActiveRecord::Base
belongs_to :venue
belongs_to :feature_type
end
答案 0 :(得分:2)
用英语思考一下。如果场地有许多功能,你会问“功能的ID是什么?”响应将是:“有许多功能,哪一个?”
:has_many
关联为您提供以下方法:venure.features
。这为您提供了所有“许多”相关功能。要获得一个Id,您可以执行以下操作:venue.features.first.id
。
答案 1 :(得分:1)
Venue has_many
功能,所以你必须遍历集合,而不是模型之间存在单一关系的belongs_to
<% venue.features.each do |feature| %>
<%= debug feature %>
<% end %>