2016-06-29 76 views
0

我正在使用select2-rails gem,並希望select2在我的多個選擇字段上工作,artist_ids就像它在this all-js example中一樣。這是我的erb文件現在的樣子。添加js腳本沒有產生任何效果,表單仍然以相同的方式加載。將select2的多個選擇插入rails'form_for

<%= form_for @event, url: {action: "create"}, html: {class: "nifty_form"} do |f| %> 
    <%= f.text_field :name %><br /> 
    <%= f.datetime_select :date %><br /> 
    <%= f.text_area :description, size: "60x12" %><br /> 
    <%= f.select(
    :venue_id, 
    options_from_collection_for_select(Venue.all, "id", "name") 
) %> 
    <%= f.collection_select :artist_ids, Artist.all, :id, :name, {:selected => @event.artist_ids, include_blank: true}, {multiple: true} %> 
    <br /> 
    <%= f.submit "Create" %><br /> 

    <% content_for :js do %> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $('#event_artist_ids').select2(); 
    }); 
    </script> 
    <% end %> 
<% end %> 

我按照文檔中的說明,按照所有通常的步驟添加了select2。在application.js和*= require select2中添加//= require select2行,並將*= require select2-bootstrap添加到application.scss。

UPDATE:

PRASHANT拉維達山建議後,它看起來像選擇2已經開始工作,但有錯誤。現在它是由兩個凌亂字段選擇藝術家

enter image description here

回答

2

請試試這個

<%= f.select(:artist_ids, Artist.all.collect {|a| [a.name, a.id]}, {}, id: "event_artist_ids", :multiple => true) %> 

<script type="text/javascript"> 
    $("#event_artist_ids").select2(); 
</script> 
+0

嘿!雖然有一些打嗝,但是select2可以工作。我在OP中添加了屏幕截圖。任何想法是什麼混亂是關於? – sivanes

+0

您可以通過給出寬度:100%來選擇標記來修復寬度問題。 –

+1

@sivanes 有三種方法可以遵循。我不是100%確定,但嘗試與他們。 1-從form_for標記中刪除html:{class:「nifty_form」} 2 - 從應用程序中刪除所有js和css。但僅包含以下 application.css * = require_self * =需要bootstrap.min * =需要SELECT2 * =需要SELECT2的自舉 中的application.js // =要求的jquery // =需要jquery_ujs // =需要bootstrap.min // =需要select2 –

1

看來,#2的工作選擇二的每一個例子是通過simple_form_for。有些人表達了這樣的看法,即form_for不會工作,因爲select2不接受f.select ...我花了幾個小時弄清楚如何讓我的工作以及我打開的所有主題,我不記得任何有form_for的人任何地方,當人們切換到simple_form_for他們成功。

+0

哇,我想這是很好的瞭解。我還是Rails的新手,並試圖遠離簡單的表單,因爲我聽說它有自己的問題,並使用標準的Rails表單來幫助理解這些東西的工作原理。 – sivanes

+1

另一方面,這裏有一個工作欄+ select2的例子,並沒有gemfile中的simple_form? https://github.com/jseifer/rails-select2-example/blob/master/Gemfile – sivanes

+0

@sivanes我只能說我看到的東西在stackoverflow –