如何在创建标签时将user_id分配给标签?

时间:2016-09-18 01:02:47

标签: ruby-on-rails callback acts-as-taggable-on

我正在使用act-as-taggable-on gem,可在此处找到https://github.com/mbleigh/acts-as-taggable-on。 我的app / models中没有Tag或Taggings模型,因为该功能直接来自gem。 标签创建很好,一切。但是,我希望能够在创建标记时将tags表中的user_id列分配给当前用户。类似的东西:

 #pseudocode 
 before_save { tag.user_id = current_user.id }

我虽然第一次扩展标签模型,但我不知道在这种情况下如何做到这一点,因为标签类是在gem中定义的(我认为)。我想我的问题是如何实现before_save或after_save回调,以确保在使用acts-as-taggable-on创建标记时,tag.user_id会自动分配给current_user.id? 这是我尝试过的,但似乎没有用。我试图添加另一个标签模型(不是在gem的模块中定义的那个):

class Tag < ActsAsTaggableOn::Tag
   before_create :assign_user_id

   def assign_user_id
      self.user_id = current_user.id
   end

end

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:0)

acts-as-taggable-on提供标签所有权。来自https://github.com/mbleigh/acts-as-taggable-on的示例:

class User < ActiveRecord::Base
  acts_as_tagger
end

class Photo < ActiveRecord::Base
  acts_as_taggable_on :locations
end

@some_user.tag(@some_photo, :with => "paris, normandy", :on => :locations)