如何区分has_many关系中的记录?

时间:2011-09-24 18:00:22

标签: ruby-on-rails activerecord paperclip

我有一个场地,venuetypes表,只是添加了一个venuetype_icons表。

目前,一个场地属于一个venuetype,一个venuetype有许多场地。每个场地都会显示一个描绘其venuetype的图标。

场地可以是免费的或高级的,我希望每个venuetype有2个图标,一个用于免费场地,一个用于高级场地。

我已经设置了venuetypes以拥有许多venuetype_icons。 venuetype_icon记录有一个名称字段和回形针文件字段。

我想这样设置我的观点:

<% if venue.plan == 'premium' %>
  display the premium venuetype_icon
<% else %>
  display the regular free icon
<% end %>

但是,如果存储在同一个表中,我如何区分免费和高级图标?是否可以在创建新图标时添加下拉列表以将其标记为免费或高级?如果是这样,那在视图中会如何运作?

我希望这是有道理的,如果需要,请要求任何澄清。

感谢任何帮助,非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您知道每个VenueType,每个计划只会有一个图标,并且计划的数量将非常有限且硬编码,我会将VenueType与VenueTypeIcons之间的关系转换为:

class VenueType
  belongs_to :free_icon, :class_name => "VenueTypeIcon", :foreign_key => "venue_type_icon_free_id"
  belongs_to :premium_icon, :class_name => "VenueTypeIcon", :foreign_key => "venue_type_icon_premium_id"
end