ruby-on-rails - 在 gem rails 上充当可标记功能不起作用

标签 ruby-on-rails ruby-on-rails-4 tagging acts-as-taggable-on

我无法让 Act_as_taggable gem 工作。我已经遵循了几个教程,甚至在这个问题上查看了过时的 Railscast,但我的主要问题在于方法 tag_list,我正在使用 Rails 4

我已完成以下操作:

gem 'acts-as-taggable-on','~> 3.4'(捆绑) rake acts_as_taggable_on_engine:install:migrations (rake db:migrate; 重新启动服务器) 添加acts_as_taggable到我的Blog.rb 通过 BlogsController 中的安全参数传递 tag_list 将其放入我的 _form 部分:

        <div class="field">
        <%= f.label :tag_list, "Tags (separated by commas)" %><br />
        <%= f.text_field :tag_list %>
        </div>

当我去编辑博客文章时,标签不会用逗号分隔,即使当我提交表单时我在每个标签后面放置了逗号。在rails控制台中,我已经验证tag_list不是一种方法,因为我不断收到错误

      undefined method `tag_list' for #<Class:0x007fa668cb03e8>

因此我还无法向任何博客文章添加标签。请帮忙

最佳答案

编辑:我使用的是 Rails 4,但 gem 版本是 3.5.0。


我在使用同一个 gem 时遇到了一些问题,这就是我所做的。

class Common < ActiveRecord::Base
  # ...
  acts_as_taggable
  # ...
end

在 Controller 中:

class CommonsController < ApplicationController
  # ...
  def my_params
    params.require(:common).permit(
      # ...
      :tag_list,
      # ...
    )
  end
  #...
end

在模板中:

<%= form_for @common do |f| %>
  <!-- ... -->
  <p>
    <%= f.label :tag_list %> <%= f.text_field :tag_list %>
  </p>
  <!-- ... -->
<% end %>

这对我有用,但是:

  • 当我编写以逗号分隔的标签列表时,它们会正确保存。例如:“红、绿、蓝”。
  • 但是,当再次加载表单时,逗号从文本字段中消失,如“red green blue”。如果我再次保存表单,则会创建一个新标签:“红绿蓝”。

如果我在模型中创建一个虚拟属性,它可以工作,但我认为这会破坏 gem 中 tag_list 方法的正常行为:

class Common < ActiveRecord::Base
  # ...
  acts_as_taggable
  # ...
  def tag_list
    tags.join(', ')
  end
end

希望这对您有任何帮助......

关于ruby-on-rails - 在 gem rails 上充当可标记功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29511292/

相关文章:

javascript - rails : Extra column when using wice_grid

ruby-on-rails - 在Rails中存储StandardError的异常类名称

ruby-on-rails - Rspec 不能 stub where 或 find_by_,只能找到

ruby-on-rails - 首字母缩略词不会正确复数导致循环依赖

nlp - 文档分析和标记

java - 如何在 Jruby-rack 中配置自定义 servlet?

ruby-on-rails - Rails Capistrano 3 - 如何将 production.log 文件共享到 Capistrano 的共享文件夹中?

ruby-on-rails - add_dependency 和 add_runtime_dependency 之间的区别?

git - 标记除提交以外的其他内容的常见用法是什么?

swift - 使用 Swift 在图像上显示标记的用户名