【发布时间】:2015-04-21 05:57:18
【问题描述】:
我正在开发一款 Rails 测试应用,其中包含美国国会的法案和立法者数据。
我有一个(站点)用户模型和一个立法者模型。我希望允许用户将个人立法者添加到他们的收藏夹中。现在我有以下模型(省略了不必要的部分):
class User < ActiveRecord::Base
has_many :favorites
has_many :legislators, through: :favorites
end
class Legislator < ActiveRecord::Base
has_many :bills
has_many :favorites
has_many :users, through: :favorites
end
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :legislator
end
我试图弄清楚这是否是建立这些关联的正确方法。在 Rails 控制台中,如果我尝试这样做:
User.first.favorites.create(legislator_id: 123)
然后收藏夹被创建了,但是这个新创建的收藏夹的 user_id 字段为 nil:
=> #<Favorite id: 5, user_id: nil, legislator_id: 145, ... >
我希望将 user_id 自动分配给调用 .favorites.create 的用户,这样我就不必这样做了
User.first.favorites.create(legislator_id: 123, user_id: User.first.id).
我必须修改什么才能让它工作?
【问题讨论】:
-
您使用哪个版本的 Rails?另外,我已经从您的问题中删除了迁移和架构 - 在这里都没有告诉我们太多。
标签: ruby-on-rails ruby model-view-controller