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 搜索表单将搜索替换为“占位符”的主要内容,如果未能解决你的问题,请参考以下文章

php 更改搜索表单占位符文本

css 搜索表单占位符文本

css 搜索表单占位符文本颜色

css 在焦点上清除搜索表单输入占位符文本

用点击的 span 标签的 innerHTML 替换占位符值

如何使用正则表达式匹配从 xml 文件中搜索和替换包含占位符标记的文本。 VB.net 或 C#