我无法让Act_as_taggable gem工作。我已经关注了几个教程,甚至在这个问题上查看过时的Railscast,但是我使用方法tag_list的主要问题是,我使用的是Rails 4
我做了以下事情:
宝石'act-as-taggable-on','〜> 3.4'(捆绑) rake acts_as_taggable_on_engine:install:migrations(rake db:migrate; restart server) 已将acts_as_taggable添加到我的Blog.rb中 通过BlogsController中的安全参数传递tag_list 将此放入我的_form partial:
<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>
因此我无法在任何博客文章中添加标签。请帮忙
答案 0 :(得分:2)
编辑:我使用的是Rails 4,但gem版本是3.5.0。
我对同一个宝石有一些问题,这就是我所做的。
class Common < ActiveRecord::Base
# ...
acts_as_taggable
# ...
end
在控制器中:
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 %>
这对我有用,但是:
如果我在模型中创建虚拟属性它可以工作,但我认为这打破了gem中tag_list方法的正常行为:
class Common < ActiveRecord::Base
# ...
acts_as_taggable
# ...
def tag_list
tags.join(', ')
end
end
希望这能以任何方式帮助你......
答案 1 :(得分:0)
请确保在模型
上添加此行acts_as_taggable # Alias for acts_as_taggable_on :tags
acts_as_taggable_on :skills
以表格
使用您的模型对象@blog.tag_list_on(:skills_tags)