更新has_many中的属性

时间:2013-06-18 20:47:10

标签: ruby-on-rails activerecord

我有以下关系:

User has_many :relationships
     has_many :friends, :through => :relationships

Friend has_many :relationships

Relationship belongs_to :user, :friend

现在,我想更新用户的friends,还要更新weight中的属性relationships。我应该怎么做呢?

我试过

Friend
accept_nested_attribute_for :relationships

  friend = my_user.friends.first
   #update info
   friend.update_attributes(:info => my_info, :relationship => {:weight => 1})

在更新权重属性之前,我应该如何查看用户和朋友之间的特定关系?

1 个答案:

答案 0 :(得分:2)

您需要指定您正在设置其权重的朋友关系,因为您的关联说明有很多。

有多种方法可以做到这一点。我可能会这样做:

friend = my_user.friends.first
relationship = my_user.relationships.where(:friend_id => friend.id).first
relationship.update_attributes(:weight => 1)