下午,Ransack with collection_select
我發現Ransack有點混亂。我試圖填充我的下拉列表中只有可用的值,並根據該值篩選索引,但是當我嘗試使用各種選項時,它會將所有信息都拉入包括重複項的下拉列表中。
如何創建此表單以便僅顯示可用內容並根據該內容進行搜索。
jobs_controller.rb
def index
@jobs = Job.all
@show_sub_nav = true
@q = Job.search(params[:q])
@searches = @q.result(distinct: true)
@lang = Job.find_by_sql("SELECT languages FROM jobs GROUP BY languages").map &:languages
end
_subnav.html.erb
<%= search_form_for @q do |f| %>
<%= f.select "languages", options_for_select(@lang) %>
<%= f.submit %>
<% end %>
我目前得到這個錯誤:
No valid predicate for languages
感謝您的幫助,我想真正的麻煩理解collection_select和這些form_helpers,因爲我沒有找到API文檔非常有用,所以任何鏈接都會也是有用的。
爲什麼'find_by_sql'?你不能使用'Job.has_many:languages'嗎?如果你使用它,那麼'options_for_select'可能會找到它可以使用的查詢結果類型。 – Phlip
你可以在控制器中使用.has_many,我認爲這只是數據庫關係,語言是一個字段列而不是模型。 –
和'p @ lang'顯示一個字符串的一維數組? – Phlip