2016-09-18 102 views
0

我正在使用可以在这里找到的宝石行为作为标签 - https://github.com/mbleigh/acts-as-taggable-on。 我的应用/模型中没有Tag或Taggings模型,因为该功能直接来自Gem。 标签创建的很好,一切。但是,我希望能够在创建标签时将标签表中的user_id列分配给当前用户。喜欢的东西:如何在创建标签时将user_id分配给标签?

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

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

class Tag < ActsAsTaggableOn::Tag 
    before_create :assign_user_id 

    def assign_user_id 
     self.user_id = current_user.id 
    end 

end 

感谢您的帮助!

回答

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) 
+0

我知道这一点。我正在问一个具体的问题,如何使我的回调。排除所有权。我没有使用它是有原因的。 – codigomonstruo