ruby-on-rails Rails:无法使用带有acts_as_taggable_on的文本字段设置或更新tag_list

bcs8qyzn  于 2023-08-08  发布在  Ruby
关注(0)|答案(2)|浏览(116)

大家好,我正在尝试给我正在开发的rails图片库系统添加标签。它从后端工作,但如果我试图在表单视图中设置或更改它,它就不工作了。
我将acts_as_taggable添加到照片模型中并进行了迁移。我的画廊构建器被编程为自动添加一个标签到它创建的每张照片。这工作得很好,就像它为控制台设置一样。但是,我似乎不能在照片表单中使用text_field设置标签。
以下是我添加到照片表单的代码:

<p>
    <%= f.label :tag_list %><br />
    <%= f.text_field :tag_list %>
  </p>

字符串
现在,这是非常简单的,因为:tag_list支持单字符串逗号分隔的赋值(例如:tag_list =“this,that,the other”#=> ['this',' that','the other']),我不明白为什么使用文本字段不起作用。更不合理的是,如果标签列表已经被填充,则在编辑照片时,列表仍然会显示在文本字段中。我只是无法对清单做出任何修改。他们的github页面上的文档似乎没有给予任何关于如何从视图中设置这些值的信息。有什么想法吗?
我使用的是Rails 3的gem版本。

oknwwptz

oknwwptz1#

我想出来了事实证明acts_as_taggable不会自动为tag_list给予访问器。我在视图中的代码是正确的,但我需要添加

attr_accessor :tag_list

字符串
做照片模特。就这么简单

hk8txs48

hk8txs482#

如果您在Rails 7/acts_as_taggable 5天内再次遇到这种情况,可能是您忘记将控制器中的:tag_list参数列入白名单。不再需要手动创建attr_accessor

# Only allow a list of trusted parameters through.
    def foo_params
      params.require(:foo).permit(:subject, :markdown, :tag_list)
    end

字符串
我似乎无法提交对列表的任何更改
在我的例子中,一旦我添加了:tag_list,我就能够像我通常期望的那样使用我的视图来更新我的模型内容。
如果您正在向已经创建的控制器添加标记,则很容易忘记。

相关问题