Ransack 搜索表单将搜索替换为“占位符”
Posted
技术标签:
【中文标题】Ransack 搜索表单将搜索替换为“占位符”【英文标题】:Ransack search form replaces search with "Placeholder" 【发布时间】:2021-02-13 20:20:39 【问题描述】:我的城市搜索表单不知何故有一个“默认城市”,即使我点击提交并且 url 中存在参数,我仍然会返回带有默认城市的选择,这也会影响搜索结果。这是我的选择(我使用 select2)。
= search_form_for @search, url: filter_path do |f|
.columns.is-centeredstyle: '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
【问题讨论】:
开始,总是使用两个空格。您在视图中使用 4 个空格,在控制器中使用 1 个空格。 【参考方案1】:这是将占位符放在选择参数[:q][:geo_code_eq] = @city_list[0][1] 中,基本上是说列表中的第一个位置总是在我的选择中。我用一个空的集合和一个没有街道显示的案例替换它,使用 rails .none 并且它穿得很好。
【讨论】:
以上是关于Ransack 搜索表单将搜索替换为“占位符”的主要内容,如果未能解决你的问题,请参考以下文章