2014-12-25 17 views
8

Metin_field'i formumda virgülle ayrılmış acts_as_taggable_on etiketlerine almaya çalışıyorum. Şu anda, sayfayı yeniden yüklediğimde, virgüllerin ortadan kalkması, böylece bir alanın iki veya daha fazla etiketi varsa, bunun yerine büyük bir etiket haline gelir. Örneğin, "Tag1, Tag2, Tag3" yerine "Tag1 Tag2 Tag3" alıyorum. Ben etiketli gibi davranır 3.4.2 kullanıyorum.Raylar 4: acts_as_taggable_on etiketler için text_field etiketleri virgülle ayırmıyor

<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 %> 

Ben düzenlemek sayfayı yeniden her zaman, giriş değeri nasılsa zaten mevcut etiketlerinden virgül kaldırır, böylece metin alanı görünüyor: Burada

benim kısmi _form.html.erb olduğunu böyle: yerine olması gerektiği gibi value="China, U.S.A." sahip

<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"> 

.

İşte benim modeldir, article.rb: Herhangi bir yardım çok takdir

class Article < ActiveRecord::Base 
    acts_as_taggable_on :people, :cities, :countries, :other 
end 

:)

teşekkürler!

+0

birden ekleyin: field_tag ​​sadık – pkrawat1

+0

bir yapmaz düzenleme sayfasına gidince, etiketler hala text_field içinde varsayılan olarak virgülle ayrılmış olmamaktadır :( – DaniG2k

cevap

9

Görünüşe göre bu bir new security feature.

Ben yaparak virgül ayırma sorunu çözüldü:

<% @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 %> 
4

Teşekkür! ActiveAdmin'i Formtastic ile kullandığım için özel bir giriş yaptım.

Yani yeni bir sınıf oluşturdu:

class TagListInput < Formtastic::Inputs::StringInput 
    def input_html_options 
    super.merge(:value => "#{@object.send(method).to_s.html_safe}") 
    end 
end 

ve bunun gibi kullanarak: app/giriş/tag_list_input.rb ile

f.input :some_tag_list, :as => :tag_list, :label => "SomeTags" 
İlgili konular