在我的搜索表单中,我有一个collection_select功能可以选择一个类别。
<% form_tag search_places_path do -%>
<%= collection_select(:place, :category_id, Category.all, :id, :name) %>
当我在控制器中尝试这个时:
@places = Place.find(:all,
:conditions => ["category_id = ?", params[:category_id]])
我在搜索日志中看到category_id = null
。
当我尝试 -
@places = Place.find(:all,
:conditions => ["category_id = ?", params[:place]])
我在搜索记录中得到(((category_id = '--- \n- category_id\n- \"1\"\n')
。
这里适当的条件陈述是什么?
答案 0 :(得分:2)
由于category_id
在place
对象中“嵌套”,您需要使用params[:place][:category_id]
检索它:
@places = Place.all(:conditions => ["category_id = ?", params[:place][:category_id] ])