写连接表数据 – has_many:through

这应该是一个简单的问题,但我无法在网上找到一个好的解决方案。

我有三个表/型号。 用户,联盟和Alliance_Membership。 后者是一个连接表,描述了:Alliance has_many:用户通过:Alliance_Membership关系。

一切正常,但Alliance_Membership现在有一个名为’rank’的额外字段。 问题是,在创建新对象时如何设置? 目前,我做的事情如下:

@alliance.users << current_user 

这非常方便,因为它会自动填充我的Alliance_Membership表。 但是,我如何设置Alliance_Membership.rank字段呢?

您需要自己创建成员资格以设置’rank’属性。 像这样的东西:

  @alliance.alliance_memberships.create!( :user => current_user, :rank => 'whatever')