似乎无法使用Acts-As-Taggable与Rails 4一起工作(字段不会更新)

时间:2014-04-25 04:43:44

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

对于像我这样的初学者来说,绝对没用(他们的文档,它没有说明哪个代码需要在哪个文件中),我想我可能会在这里为我的Rails 4应用程序而不是官方文档提供更好的帮助。

我不确定act-as-taggable-on是否是我问题的最佳解决方案,但这是我正在尝试做的事情:我正在创建一个使用标签而不是类别的业务目录,以便酒吧/休息室可同时属于酒吧和休息室。 也许有人知道更好的解决方案,而不是使用act-as-taggable-on?

当我尝试创建或查看标签时没有错误,但问题是标签没有被保存。当我尝试查看具有标记的业务时,它显示为空。当我尝试编辑它时也一样。

这就是我的模型:

class Business < ActiveRecord::Base
  validates :name, uniqueness: true
  acts_as_taggable
  acts_as_taggable_on :tag_list

end

表格:

<%= form_for(@business) do |f| %> 
  ...

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

  ...
<% end %>

观点:

  <p>
      <strong>Tags:</strong>
      <%= @business.tag_list %>
  </p>

任何人都知道阻止查看/保存标记的原因是什么? 也许有人可以提供更好的文档。

更新:我还使用了 Active_Admin ,根据Matt Boldt,这似乎导致了一些问题。在完成他的教程后,我的问题仍然没有解决。

3 个答案:

答案 0 :(得分:2)

可能是阵列问题?不确定。你在使用什么版本的acts_as_taggable?

尝试添加强力参数来请求数组。

  def business_params
      params.require(:business).permit(:xxx, :xxx, :tag_list => [])
  end

答案 1 :(得分:1)

我遇到了同样的问题并且正在改变:tag_list =&gt; [] with:tag_list修复它

我想这取决于你在表单中使用的输入类型,在我的例子中是文本输入

 def business_params
  params.require(:business).permit(:xxx, :xxx, :tag_list)
 end

答案 2 :(得分:0)

我遇到了同样的问题并检查了终端以查看错误发生的位置,我得到了这个 Unpermitted parameters: tag_list

我忘了在我使用标签的模型中添加:tag_list到控制器中的强params接受属性。试试吧!