由于我当前应用程序的灵活性有限,我正在关闭 acts_as_taggable_on 。相反,我从头开始构建我的标签作为他们自己的模型。但是,我已经错过了表单的“@model.tag_list”方法,该方法会分割以逗号分隔的用户输入并创建单独的标签。我的“可标记”模型是一个视频,我很好奇如何编写一个基本上可以像“tag_list”一样工作的方法?
Example:
<%= form_for @video do %>
<%= f.text_field :tag_list %>
....
给定输入:"one, two, three"
将构建三个标签作为@video 的子标签。
@video.tags.each do |tag|
puts tag.name
end
=> one
two
three
EDIT
我真的很喜欢标签模型中的这一点,以保持表单混乱我的控制器。也许作为自定义属性?也许视频模型更有意义?我知道如何制定自定义方法return自定义数据,但不分配它。一些研究指出我是这样的(尚未测试)
video.rb
def tag_list=value
value.split(',').each do |tag|
self.tags.build(:name => tag).save
end
end
看来我的示例代码最终工作了
video.rb
def tag_list=value
value.split(',').each do |tag|
self.tags.build(:name => tag).save
end
end
EDIT
还需要添加使其以表单形式工作:
def tag_list
self.tags.join(',')
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)