Rails:使用acts-as-taggable-on和tag_list直接赋值设置标记所有者

时间:2014-07-27 01:03:12

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

使用https://github.com/mbleigh/acts-as-taggable-on我需要使用其中描述的tag_list直接分配方法设置我创建的标签的所有权。

以下是我现在正在做的事情:

@blog.tag_list = "red, blue, green"
@blog.save

我将用户设置为Tagger

class User < ActiveRecord::Base
  acts_as_tagger
end
然后,自述文件描述了如何通过各种标记方法设置标记所有权,但没有讨论如何通过tag_list直接设置所有权。

这可能吗?或者我是否需要避免直接分配设置所有权?

1 个答案:

答案 0 :(得分:3)

请参阅https://stackoverflow.com/a/6545342/86915

  # In a taggable model (Blog):
  before_save :set_tag_owner
  def set_tag_owner
    # Set the owner of some tags based on the current tag_list
    set_owner_tag_list_on(self.user, :tags, self.tag_list)
    # Clear the list so we don't get duplicate taggings
    self.tag_list = nil
  end

  # In the view:
  <%= f.text_field :tag_list, :value => @blog.all_tags_list %>