背景:我有一个模型帖子“belongs_to”用户(我想使用 post.user 来获取帖子创建者)和“has_many,:用户通过:: user_posts“(我想使用 post.users 来获取不是创作者但能够拥有并属于帖子的用户)
目标:目前,调用current_user.posts.create
会将current_user添加到post.users,而post.user仍为nil。
我知道我可以简单地执行此操作current_user.posts.create(user_id: current_user.id)
,但有没有办法自动设置user_id而不必每次都明确设置它? (也许在模型中通过回调?)
答案 0 :(得分:0)
我发现你声明关联的顺序在这里有所不同:
class Post < ActiveRecord::Base
belongs_to :user
has_many :user_posts, dependent: :destroy
has_many :users, through: :user_posts
end
current_user.posts.create #=> Link with user_id: nil
class Post < ActiveRecord::Base
has_many :user_posts, dependent: :destroy
has_many :users, through: :user_posts
belongs_to :user
end
current_user.posts.create #=> Link with user_id: 1