【问题标题】:How do I assign user_id to tags when they are being created?如何在创建标签时将 user_id 分配给标签?
【发布时间】:2016-09-18 01:02:46
【问题描述】:

我正在使用acts-as-taggable-on gem,可以在这里找到https://github.com/mbleigh/acts-as-taggable-on。 我的应用程序/模型中没有 Tag 或 Taggings 模型,因为该功能直接来自 gem。 标签创建得很好,一切都很好。但是,我希望能够在创建标签时将标签表中的 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

感谢您的帮助!!!

【问题讨论】:

  • 您好,您是如何解决这个问题的?我碰巧也面临着同样的挑战。

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


【解决方案1】:

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)

【讨论】:

  • 我知道。我要问一个具体的问题,如何进行回调。排除这种所有权。我没有使用它是有原因的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多