Tag: 搜索

在Rails中对Globalize3表进行简单搜索

我想在Ruby on Rails上使用globalize3 gem时实现一个简单的搜索function。 由于模型的转换存储在单独的表中,因此下面的代码不起作用,因为products表中不再有:name字段。 如何调整以下代码以使搜索function正常? products_controller.rb @products = Product.search(params[:search]).all index.html.erb 模型 class Product < ActiveRecord::Base translates :name attr_accessible :name, :price, :released_at def self.search(search) if search where('name LIKE ?', "%#{search}%") else scoped end end end

如何使用太阳黑子设置具有多对多关系的方面搜索?

我之前没有实现过搜索function,感觉有些卡住了。 我有一个太阳黑子搜索function,可以根据关键字查找结果 – 这很有效 – 但我现在想要实现多选择方面function,但我似乎无法弄清楚如何设置基本方面搜索。 我有很多关系(在轨道中不在现实生活中): Class People has_many:技能,:through =>经验(反之亦然等) Class People experience searchable do text :first_name, :surname end end 在控制器中 @search = Sunspot.search(People) facet :skill_ids end 这是我无法工作的基本示例。 它会生成此错误: Sunspot::UnrecognizedFieldError: No field configured for People with name ‘skill_ids’ 如何创建指向:skill_ids的链接 我想我必须在模型中遗漏一些参考 – 但我找不到的例子确实引用了关系的ID。 我发现的大多数示例在使用构面function时都使用了该模型中已有的列。 如何使基本实现工作? 我如何在视图中使用它 – 我是否必须调用hits.facet并迭代技能? 显示此代码的代码是什么样的? 如何选择多个方面进行搜索? 我应该把它放在社区维基中吗? 感谢您的时间!

在Sunspot上调试Solr搜索查询

在Rails上使用Sunspot gem时,如何调试Solr搜索查询? 我有一些问题正在回归奇怪的高分,我正试图找到为什么会发生这种情况。 似乎没有任何调试信息暴露给Sunspot,所以我认为我需要直接通过Solr进行调试。 幸运的是,Solr有一个方便的Web界面可供搜索,但出于某种原因,我输入的任何查询返回0结果。 例如,当我在我的网络应用程序上搜索单词“test”时,它会返回大量的点击。 当我在Solr管理界面上搜索相同的东西时,这就是我得到的: 0 172 *,score on 0 test standard standard 2.2 10

searchkick没有返回带有空格的结果

所以我有这个searckick方法: search_options = { misspellings: { edit_distance: 2 }, fields: [:eventname, :date, :city], order: { _score: :desc, date: :asc, eventname: :asc, city: :asc }, match: :word_start, suggest: true, page: params[:page], per_page: 20 } if params[:date_from].present? datefrom = params[:date_from].to_datetime.strftime(‘%Y-%m-%d’) dateto = params[:date_to].to_datetime.strftime(‘%Y-%m-%d’) search_options[:where] = { date: {gte: datefrom, lte: dateto} } end 这不适用于空白……例如, bassjam不匹配bass jam ,如果我搜索bass […]

Ruby on Rails:如何根据search_field中的post params重定向页面?

我正在开发一个小股票市场应用程序,用户可以根据股票代码查找公司股票信息。 用户在搜索字段中发布了:symbol param后,应将其重定向到相应的“公司”页面(如华尔街日报,雅虎财经,Google财经等)。 我现在能够用符号手动输入路线,一切正常。 例如,localhost:9292 / company / GOOG。 我是一个总菜鸟,所以任何帮助都会非常感激。 谢谢! 我目前在我看来有这个: 这是我的路线: get “/company/:symbol” => “main#company” post “/company/:symbol” => “main#company_post” 编辑:我正在使用MarketBeat gem来提取数据,但我也有一个Company表,其中我有列符号和名称。 这是我的控制器: class MainController < ApplicationController def index render :index and return end def company @name = MarketBeat.company params["symbol"] @symbol = MarketBeat.symbol params["symbol"] @price = MarketBeat.last_trade_real_time params["symbol"] @change = MarketBeat.change_and_percent_change params["symbol"] @volume = […]

使用acts_as_taggable_on搜索表单(Rails 3)

我有一个搜索框来搜索产品。 每个产品都有一个标题,并标有多个标签。 我希望能够按标题或标签搜索产品。 换句话说,如果我有一个名为“绿茶”的产品和另一个标记为“绿色,红色,蓝色”的产品,并且我在搜索框中输入“绿色”,我希望这两种产品都出现在搜索结果中。 我正在使用Rails 3,acts_as_taggable_on,Ruby 1.9.2。

跨多个模型搜索多个单词

我正在尝试在站点中创建搜索function,我希望用户能够搜索多个单词,对各种模型中存在的条件执行子串匹配。 为了这个例子,假设我有以下模型: 雇员 公司 市 县 一个县有多个城市,有多个公司,有多个员工。 我希望搜索能够搜索Employee.firstname,Employee.lastname,Company.name,Municipality.name和County.name的组合,并且我希望最终结果是Employee实例。 例如,搜索字符串“joe tulsa”应返回所有Employees,其中两个单词都可以在我在上一句中命名的属性中的某处找到。 我会得到一些误报,但至少我应该让塔尔萨县的每个员工都叫“乔”。 我尝试了几种方法,但我不确定我是否会走正确的道路。 我正在寻找一种很好的RoR-ish方法,我希望有更多RoR智慧的人可以帮助勾勒出一个合适的解决方案。 我试过的: 我对这种搜索不太熟悉,但在RoR之外,我手动创建一个SQL语句将所有表连接在一起,为每个单独的搜索词创建where子句,覆盖不同的表。 也许使用建设者。 然后只需执行查询并遍历结果,手动实例化Employee对象并将它们添加到数组中。 为了在RoR中解决这个问题,我一直在: 1)在我的项目对应员工模型中涉及命名范围,但当我需要加入两个或更多“步骤”(市政府和县)的表时,我陷入困境。 2)创建一个将所有表连接在一起的视图(称为“search_view”),以简化查询。 然后以为我会在这个表上使用Employee.find_by_sql(),这会产生这些好的Employee对象。 我以为我会使用构建器来创建SQL,似乎Arel是使用的东西,所以我尝试做类似的事情: view = Arel::Table.new(:search_view) 但是生成的Ariel :: Table不包含任何列,因此它不能用于构建我的查询。 此时我有点卡住,因为我不知道如何获得一个有效的查询生成器。

Rails搜索多个模型

我有一个问题。 我有一个show视图,它充当仪表板并从其他模型中引入记录,然后是与之关联的模型。 我有一个简单的搜索表单,可以正常搜索一个模型,但我不知道如何通过它的相关模型查看它。 我不认为全文搜索是必要的,我不确定它是如何工作的,因为我不想要在整个网站上搜索的东西。 谢谢 公司/显示/ 1 :get do %> nil %> 0), battalion_company_soldier_path(@battalion, @company,soldier) %> 0), edit_battalion_company_soldier_path(@battalion, @company,soldier) %> Cell: () (c): soldier.rb def self.search(search) if search find(:all, :conditions => [’email LIKE ? OR lastname LIKE ? OR firstname LIKE ?’, “%#{search}%”, “%#{search}%”, “%#{search}%”]) else find(:all, :order => ‘lastname’) end end companies_controller @soldiers = […]

Rails,Ransack:如何在“所有”匹配中搜索HABTM关系而不是“任何”

我想知道是否有人有使用Ransack与HABTM关系的经验。 我的应用程序的photos与terms有关系(术语类似于标签)。 这是我正在经历的简化说明: 我有两张照片:照片1和照片2.他们有以下条款: 照片1:A,B,C 照片2:A,B,D 我构建了一个搜索表单,并在搜索表单中为所有术语创建了复选框,如下所示: – terms.each do |t| = check_box_tag ‘q[terms_id_in][]’, t.id 如果我使用: q[terms_id_in][]并且我检查“A,C”我的结果是照片1和照片2.我只想要照片1,因为我要求A和C,在这个查询中我不关心B或D但我希望A和C都出现在给定的结果上。 如果我使用q[terms_id_in_all][]我的结果是零,因为q[terms_id_in_all][]照片都不包含A和C.或者,也许,因为每个连接只有一个术语,所以没有连接匹配A和C.无论如何,我只想要照片1将被退回。 如果我使用任何种类的q[terms_id_eq][]我从来没有得到任何结果,所以我认为这不适用于这种情况。 因此,给定一个habtm连接,如何在忽略未给定值的同时搜索与给定值匹配的模型? 或者,对于任何不熟悉Ransack的rails / sql专家,你怎么可能去创建一个搜索表单,比如我正在描述一个带有habtm连接的模型? 更新:根据相关问题的答案 ,我现在已经建立了一个正确匹配它的Arel查询。 不知何故,你应该能够使用Arel节点作为搜索者,或者像cdesrosiers所指出的那样,作为自定义谓词,但到目前为止我还没有得到这样的工作。 根据该答案,我设置了以下ransack初始化程序: Ransack.configure do |config| config.add_predicate ‘has_terms’, :arel_predicate => ‘in’, :formatter => proc {|term_ids| Photo.terms_subquery(term_ids)}, :validator => proc {|v| v.present?}, :compounds => true end …然后在Photo上设置以下方法: def self.terms_subquery(term_ids) photos = Arel::Table.new(:photos) […]

在Rails中搜索

我有一个“post”表,其中包含title和body属性。 posts_controller.rb: class PostsController < ApplicationController def index @posts = Post.search(params[:search], params[:id]) end end index.html.erb: ‘get’ do %> nil %> Title Text :show, :id => post.id %> :edit, :id => post.id %> :destroy, :id => post.id }, :method => :delete, :confirm => ‘Are you sure?’ %> 和post.rb def self.search(search, id) if search where([‘name LIKE ?’, […]