我正试图使text_field在我的形式偏袒逗号分开的acts_as_taggable_on标记。现在,当我重新加载页面时,逗号会消失,所以如果一个字段有两个或多个标签,它们就变成一个大标签。例如,我得到"Tag1 Tag2 Tag3“而不是"Tag1,Tag2,Tag3”。我用的是3.4.2的动作。
以下是我的_form.html.erb部分:
<h2>Tags:</h2>
<p>Please separate the tags with a comma ','</p>
<% @article.tag_types.each do |tag| %>
<div class="form-group">
<strong><%= label_tag tag.to_s.titleize %></strong><br />
<%= f.text_field "#{tag.to_s.singularize}_list".to_sym, :placeholder => "Comma-separated list of #{tag.to_s}", class: 'form-control' %>
</div>
<% end %>
每次重新加载编辑页面时,输入值都会以某种方式从已经存在的标记中删除逗号,因此文本字段如下所示:
<input id="article_country_list" class="form-control" type="text" name="article[country_list]" value="China U.S.A." placeholder="Comma-separated list of countries">
而不是按应有的方式拥有value="China, U.S.A."
。
这是我的模型,article.rb
class Article < ActiveRecord::Base
acts_as_taggable_on :people, :cities, :countries, :other
end
如能提供任何帮助,将不胜感激:)
谢谢!
发布于 2014-12-25 13:47:13
显然,这是一个new security feature。
我通过以下操作解决了逗号分离问题:
<% @article.tag_types.each do |tag| %>
<div class="form-group">
<strong><%= f.label tag.to_s.titleize %></strong><br />
<% tag_sym = "#{tag.to_s.singularize}_list".to_sym %>
<% tag_list = "#{tag.to_s.singularize}_list" %>
<%= f.text_field tag_sym, value: @article.send(tag_list).to_s, :placeholder => "Comma-separated list of #{tag.to_s}", class: 'form-control' %>
</div>
<% end %>
发布于 2015-06-01 04:19:00
谢谢!由于我使用的是ActiveAdmin和表单,所以我做了一个自定义输入。
因此,我创建了一个新的类:app/input/tag_list_input.rb,并使用:
class TagListInput < Formtastic::Inputs::StringInput
def input_html_options
super.merge(:value => "#{@object.send(method).to_s.html_safe}")
end
end
用这样的方法:
f.input :some_tag_list, :as => :tag_list, :label => "SomeTags"
https://stackoverflow.com/questions/27646714
复制