由于我当前应用程序的灵活性有限,我将关闭acts_as_taggable_on。相反,我从头开始构建我的标签作为他们自己的模型。但是,我已经错过了表单的“@model.tag_list”方法,该方法会分割以逗号分隔的用户输入并创建单独的标签。我的“可标记”模型是一个视频,我很好奇如何编写一个基本上可以像“tag_list”一样工作的方法?
示例:
<%= form_for @video do %>
<%= f.text_field :tag_list %>
....
给定输入:“一,二,三”
将构建三个标签作为@video 的子标签。
@video.tags.each do |tag|
puts tag.name
end
=> one
two
three
编辑
我真的很喜欢标签模型中的这个,以保持表单困惑我的 Controller 。也许作为自定义属性?也许视频模型更有意义?我知道如何创建自定义方法来返回自定义数据,但不分配它。一些研究指出我是这样的(尚未测试)
视频.rb
def tag_list=value
value.split(',').each do |tag|
self.tags.build(:name => tag).save
end
end
最佳答案
看起来我的示例代码最终工作了
视频.rb
def tag_list=value
value.split(',').each do |tag|
self.tags.build(:name => tag).save
end
end
编辑
还需要添加以使其在表单中工作:
def tag_list
self.tags.join(',')
end
关于ruby-on-rails - 如何接受逗号分隔列表来为模型构建标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9611475/