- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Ruby on Rails 新手。我正在尝试使用 pg_search gem 但遇到了一些困难(是的,我正在查看文档)。我想要一个包含文本字段和选择字段(类别)的搜索表单。这是我到目前为止的代码:
contact_info.rb
class ContactInfo < ActiveRecord::Base
...
include PgSearch
pg_search_scope :search_by_category, (lambda do |category, query|
raise ArgumentError unless [:prev, :cat].include?(category)
{
:against => category,
:query => query
}
end
end
home_controller.rb
class HomeController < ApplicationController
def index
@contact_infos = ContactInfo.search_by_category(params[:query])
respond_to do |format|
format.html # index.html.erb
format.json { render json: @contact_infos }
end
end
home\index.html.erb
<%= form_for :search_by_category, :url => {:controller => 'home', :action => 'index'},
:html => {:method => 'get'} do |f| %>
<%= text_field_tag :query %>
<%= f.label :category_id, "Category" %>
<%= f.collection_select :category_id, Category.all,
:id, :name,
{:prompt => 'All'} %>
<br/>
<%= f.submit "Search" %>
<% end %>
我收到这个错误:
HomeController 中的 ArgumentError#index 参数数量错误(1 对 2)
...
请求
参数:
{"utf8"=>"✓","query"=>"test","search_by_category"=>{"category_id"=>"2"},"commit"=>"Search"}
我知道问题出在这一行:
@contact_infos = ContactInfo.search_by_category(params[:query])
但我不确定如何从 View (home\index.html.erb) 中传递这两个变量。
谢谢!
最佳答案
好的 - 我明白了。如果它能帮助某人....
在模型 contact_info.rb 中
class ContactInfo < ActiveRecord::Base
include PgSearch
...
pg_search_scope :search_by_category, :against => :previous_value
scope :in_category, lambda { |category_id|
where(:category_id => category_id)
}
end
在 Controller home_controller.rb
class HomeController < ApplicationController
def index
if params[:search_by_category].nil?
@contact_infos = ContactInfo.search(params[:query])
else
tmp = params[:search_by_category]
@contact_infos = ContactInfo.search_by_category(params[:query]).in_category(tmp[:category_id])
respond_to do |format|
format.html # index.html.erb
format.json { render json: @contact_infos }
end
end
end
end
在 View home\index.html.erb
...
<%= form_for :search_by_category, :url => {:controller => 'home', :action => 'index'}, :html => {:method => 'get'} do |f| %>
<%= text_field_tag :query %>
<%= f.label :category_id, "Category" %>
<%= f.collection_select :category_id, Category.all,
:id, :name,
{:prompt => 'All'} %>
<br/>
<%= f.submit "Search" %>
<% end %>
...
关于ruby-on-rails - pg_search 使用一个文本字段和一个类别选择类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889276/
在我的应用程序中,我有许多模型,我想向其中添加多重搜索,我觉得我已经完成了所需的一切,但是在控制台中,当我运行以下命令时,我得到一个空的 []。 PgSearch.multisearch("Red")
在我的应用程序中,我有许多模型,我想向其中添加多重搜索,我觉得我已经完成了所需的一切,但是在控制台中,当我运行以下命令时,我得到一个空的 []。 PgSearch.multisearch("Red")
Ruby on Rails 新手。我正在尝试使用 pg_search gem 但遇到了一些困难(是的,我正在查看文档)。我想要一个包含文本字段和选择字段(类别)的搜索表单。这是我到目前为止的代码: c
我正在关注 this Railscasts 插曲。 如果我搜索“Kerber”,它会返回正确的文章。但是,如果我搜索“Ke”,它不会返回同一篇文章。 有办法解决这个问题吗? class Item <
我正在使用 pg-search 在模型中进行搜索。我遇到的问题是,如果我搜索一个字段或另一个字段中的关键字,它会起作用,但如果我输入我知道在我正在使用的 2 个字段中的关键字,它不会返回任何内容。 这
当尝试在文档中查找“Harrison Ford”时,pg_search 将返回任何包含“Harrison”和“Ford”的文本,例如: pg_search_scope :search_by_ful
我的“ Assets ”模型有一个搜索页面,除了搜索特定于“serial_no”字段的任何内容之外,一切正常。 Assets .rb # == Schema Information # # Table
我的模型有以下范围: class Cloth :destroy pg_search_scope :full_search, associated_against: { clo
我正在尝试在我的 Rails 应用程序中使用 pg_search gem 从一个搜索栏中搜索大量模型。 我添加了搜索栏:
我有一个使用 pg_search 的 Rails 应用程序gem 以利用 PostgreSQL 的全文搜索功能。 手册中提到搜索具有(例如)has_many 关系的模型: Searching thro
我正在尝试在我的 Rails 应用程序中实现全文搜索。我使用 PostgreSQL 作为数据库,因此,使用 PostgreSQL 的全文搜索功能。我有两个模型 Users 和 Scoreboards,
我正在使用 Rails 4.2 中的 pg_search gem 来搜索模型中的名称。我有以下内容: pg_search_scope :search_for_dashboard, lambda
我正在使用 gem pg_search在我的 postgres 数据库上执行全文搜索。我有这样的范围: pg_search_scope :fulltext, against: [:firstname,
这是我的pg_search 方法: pg_search_scope :node_search, against: [:name, :user_id, :circa, :cached_tagged_
我有一个 Node 类,我在上面设置了 acts_as_taggable,所以我可以将 user_tags 添加到任何节点。我的 Node 模型也有一个方法,可以查找 user_tag_list 中所
我在我的 Node 模型上实现了 PgSearch,如下所示: include PgSearch pg_search_scope :node_search, against: [:name, :use
有没有办法从模型而不是索引表条目中获取 pg_search 结果?我的代码有效,但我必须遍历结果。 search = PgSearch.multisearch(params[:search]) @it
我正在使用 pg_search 并尝试在标题中搜索特殊字符。 例如,我有两行包含此信息: id title 1 GT40 2 #GT40 所以当我搜索“#GT40”时,pg_se
我将 Rails 4.2.4 与 pg_search 1.0.5 一起使用。 class Advert [:title, :body] end 我想按 :created_at 对 pg_search
我正在使用这个 stackoverflow answer尝试为我的 Rails 应用程序实现 Twitter Typeahead,我还尝试实现 Github自述文件,但当我在文本框中输入内容时没有文本
我是一名优秀的程序员,十分优秀!