在创建新标记时,我一整天都在努力传递用户ID并输入标记表
在标记控制器中,我有以下代码:
def create
@taggable = Blog.find(params[:blog_id])
@tagger = current_user
@tagging = @taggable.taggings.build(params[:taggings])
respond_to do |format|
if @tagging.save!
format.js {render status: :created}
end
end
end
在此标记模型中,我有此代码
belongs_to :taggable, :polymorphic => true
belongs_to :tagger, :polymorphic => true
在此博客模型中,我有此代码
attr_accessible :description,:user_id,:title,:taggings_attributes,:tagger_attributes
has_many :taggings, as: :taggable
has_many :tagger, as: :taggable,:class_name=>"Tagging"
现在我想要这样的东西
@tagging = @taggable.@tagger.taggings.build(params[:taggings])
答案 0 :(得分:2)
您可以在构建新的Tag
对象之后以及保存之前随时分配用户。
例如,
@tagging = @taggable.taggings.build(params[:taggings])
@tagging.tagger_id = @tagger.user.id
@tagging.tagger_type = 'User'
您也可以直接分配用户,而不是tagger_id和tagger_type。
@tagging = @taggable.taggings.build(params[:taggings])
@tagging.tagger = @tagger.user