作为标签的行为在宝石轨道上不起作用
我无法获得Act_as_taggable宝石的工作。 我跟着几个教程,甚至在这个问题上查看过时的Railscast,但我的方法tag_list的主要问题,我使用Rails 4
我做了以下工作:
gem'acts-as-taggable-on','〜> 3.4'(捆绑)rake acts_as_taggable_on_engine:install:migrations(rake db:migrate; restart server)在我的Blog.rb中添加acts_as_taggable在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,但宝石版本是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
希望这可以帮助你以任何方式...
请确保您在模型上添加这些行
acts_as_taggable # Alias for acts_as_taggable_on :tags
acts_as_taggable_on :skills
在表单中使用你的模型对象
@blog.tag_list_on(:skills_tags)
链接地址: http://www.djcxy.com/p/6111.html