如何通过关系在has_many中保存额外的字段

时间:2012-04-12 23:48:44

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我有两个用户模型:顾问投资者,它们通过has_many_through关系与关系模型相关联。问题是我希望保存已登录的投资者用户与电子邮件中找到的顾问用户之间的关系。我有以下代码:

advisor = Advisor.where(:email => params[:invite][:email])
if advisor.exists?
@logged_investor.advisors << advisor
end

这样可以正常工作,但我需要将一个额外的字段保存到名为“status”的 Relation 表中,该表将跟踪其关系的状态。我该怎么做?

2 个答案:

答案 0 :(得分:3)

@logged_investor.relations.create(:status => ..., :advisor => ...)

答案 1 :(得分:1)

您应该能够像

中的任何其他关系一样访问Relation表
@logged_investor.relations

如果模块设置正确。 然后找到你想要的关系并改变状态值。

通过使用rails控制台可以很容易地检查您可以在对象上调用哪种方法,就像任何其他命令行一样,推送选项卡将为您提供对象具有的所有可用方法和属性。