如何在Rails中为多对多关系(和中间表)执行选择字段?

时间:2009-11-07 23:25:07

标签: ruby-on-rails many-to-many

尝试为管理界面执行选择字段。

我拥有的不是传统的多对多关系,但我认为原则是相同的。我有一个“事件”模型和一个“EventRelation”模型......每个事件可以有许多子事件和一个主要事件......所以EventRelation有primary_event_id和sub_event_id字段。

如何创建一个允许我为任何给定事件指定primary_event的select字段?

相关型号代码:

class Event 'primary_event_id', :class_name=>'EventRelation'
  has_one :primary_event_relation, :foreign_key=>'sub_event_id', :class_name=>'EventRelation'


  has_one :primary_event, :through=>:primary_event_relation,  :foreign_key=>"primary_event_id"
  has_many :sub_events, :through=>:sub_event_relations, :foreign_key=>"sub_event_id"


end


class EventRelation 'Event', :foreign_key=>"primary_event_id"
  belongs_to :sub_event, :class_name=>'Event', :foreign_key=>"sub_event_id"

end


2 个答案:

答案 0 :(得分:1)

我会使用像Formtastic这样的插件来实现这一点,因为它支持构建在固体替代形式处理程序中的各种形式的ActiveRecord关联。只需确保使用最有效的连接或包含您模型的选项进行适当的查询,以便您的视图不会导致不必要的数据库查询,因为它通过关联工作。

答案 1 :(得分:0)

正如詹姆斯所说,Formtastic是一个很好的方法。如何使用它有两个很棒的railscasts