ruby-on-rails - 如何接受逗号分隔列表来为模型构建标签?

标签 ruby-on-rails ruby-on-rails-3 model acts-as-taggable-on

由于我当前应用程序的灵活性有限,我将关闭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/

相关文章:

ruby-on-rails - Ruby on Rails 每次触发更新序列化属性

mysql - rake 数据库出现问题 :migrate

Ruby Mongo 驱动程序 - Find_by_Id

ruby-on-rails - rails 。保存时更新模型属性

r - 在 glm() 中使用 splines 包中的 ns() 函数

ruby-on-rails - 在上传到 S3 之前,如何在服务器上将文件验证为图像?

ruby-on-rails - 使用 activerecord 连接两个以上的表

ruby-on-rails - Rails 3.1通配符使缓存与查询字符串一起作用

python - 支持 Ruby 和 Python 的优秀 Web 主机?

r - igraph'ing 嵌套模型