2016-02-20 1 views
1

Я использую Rails 4 с SunSpot и моя установка:Как разобрать множественного выбора параметра в рельсах для SunSpot

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' 

два вопроса ... один - это код поиска() не работает, если есть пробел. Я могу позаботиться о том, что с .reject { |c| c.empty? } функции .... , но только если его чистый массив без ид: участие в начале

право я получаю эту ошибку:

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

далее ...