我的城市搜袋搜罗表格以某种方式具有“默认城市”,即使我单击提交并且URL中存在参数,我仍然会返回带有默认城市的选择,这也会影响搜索结果。这是我的选择(我使用select2)。
= search_form_for @search, url: filter_path do |f|
.columns.is-centered{style: 'padding-top: 100px;'}
.column.is-half
= f.select(:geo_code_eq, options_for_select(@collection, (params[:q][:geo_code_eq].nil? ? '' : params[:q][:geo_code_eq])), {:include_blank => true}, {class: "city-select2 select-input" })
= f.submit "Search"
我认为它有一定的安全性。与收集有关,但我找不到,这是默认城市的真正原因。所以这部分控制器:
def filter
@city_list = city_list
params[:q] ||= {}
params[:q][:geo_code_eq] = @city_list[0][1]
if params[:q].present? && params[:q][:geo_code_eq].present?
@city = Geo::City.find_by(geo_code: params[:q][:geo_code_eq])
@collection = [["#{@city}", "#{params[:q][:geo_code_eq]}"]]
end
@search = @city.streets.ransack(params[:q])
@streets = @search.result
end
答案 0 :(得分:0)
这是将占位符放在选择参数中[:q] [:geo_code_eq] = @city_list [0] [1],基本上是说列表中始终有第一个位置成为我的选择位置。我用一个空集合替换了它,并使用了Rails .none来显示没有街道的情况,而且还不错。