2016-02-20 22 views
1
我使用Rails 4太陽黑子

和我的設置是:如何分析在軌多選參數太陽黑子

searchable do 
    text :title 
    text :body 
    integer :technicalarea_ids, :references => Technicalarea, :multiple => true 
    integer :targetgroup_ids, :references => Targetgroup, :multiple => true 
    integer :organization_id, :references => Organization 
    integer :series_id, :references => Series` searchable do 
end 

我的形式選擇的技術領域:

<%= collection_select :technicalarea_ids, :id, Technicalarea.all, :id, :name,{}, { :multiple => true, :include_blank => false} %> 

和我搜索控制器

@search = Resource.search do 
     fulltext params[:search_term] 
     with(:technicalarea_ids, params[:technicalarea_ids]) 
    end 

上形式提交PARAMS [:technicalarea_ids]顯示此

-- !ruby/hash:ActionController::Parameters 
id: 
- '' 
- '2' 
- '3' 
- '4' 

兩個問題... 一個是with()搜索代碼將無法正常工作,如果有一個空白。我可以照顧,與一個.reject { |c| c.empty? }功能.... 但只有當它是一個乾淨的陣列,而不ID:參與之初

權我收到此錯誤:

undefined method `to_i' for {"id"=>["", "2", "3", ,4"]}:ActionController::Parameters 

如何我可以發送的參數從形式看起來像: technicalarea_ids => [ 「」, 「2」, 「3」,4" ]
沒有前面的 「ID」=>

+0

好吧,我解決我自己的問題.... – mrdinghy

回答

0

我改變形式選擇以下,它工作得很好....

<%= select_tag "technicalarea_ids", options_from_collection_for_select(Technicalarea.all, "id", "name"), { :multiple => true, :include_blank => true} %> 

我認爲select_tag是大的變化,而不是collection_select

起...