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/

相关文章:

javascript - 设置 Angular 模态的默认时间

ruby-on-rails - Ruby on Rails - PUT 方法创建额外的参数条目

ruby-on-rails - 用于测试的未定义方法 `users'

ruby-on-rails - 将 ElasticSearch 与 Tire(A Ruby on Rails Gem)一起使用时如何限制总返回结果?

ruby-on-rails - Rails 3.2.11 Nodejs 符号查找错误

model-view-controller - 在joomla的 View 中调用模型函数?

ruby-on-rails - Rails 和 sass/css 什么时候生成(来自 sass 的 css)

ruby-on-rails - 我应该总是用哪个解析日期时间?日期时间、时间、时区?

ruby-on-rails-3 - Rails 3 升级 will_pagination 参数数量错误(2 为 1)

php - Laravel 如何在 Eloquent 模型中添加自定义函数?