Tag: postgresql

使用pg_search搜索多个模型

我正在尝试在我的rails应用程序中实现全文搜索。 我使用PostgreSQL作为数据库,因此,使用PostgreSQL的全文搜索function。 我有两个模型用户和记分板,我想在两个模型中搜索特定列以提取记录。 我正在使用pg_search gem进行全文搜索,我阅读了多元文档并成功实现了所有内容。 我创建了pg_search_documents表。 代码如下。 记分牌模型 include PgSearch multisearchable :against => [:name_of_organization, :name_of_activity, :name_of_scoreboard] 用户模型 include PgSearch multisearchable :against => :name 控制器代码 def index @pg_search_documents = PgSearch.multisearch(params[:search]) end 当我在视图中运行代码时,搜索工作正常。 当搜索每个用户和记分板OBJECTS时,它将返回它们。 查看代码 但是,当我尝试运行上面给出的视图代码并搜索名称时,我将收到以下错误, undefined method `name_of_scoreboard’ for #. 当我尝试搜索name_of_scoreboard时,我收到类似的错误, `undefined method `name’ for #.` 如果我在我的视图中使用以下代码, , 显示用户和记分板的ID。 这意味着我只能搜索两个模型中常见的列。 如果我尝试搜索两个不同的列,例如name和name_of_scoreboard ,我会得到上面提到的两个错误。 我可以在两个不同的模型之间进行搜索,但是我无法从视图中显示结果。 我不确定我做错了什么,或者我错过了一些重要的事情。 我真的不确定。 我试图保持简短并试图包含相关信息。 […]

Rails中WHERE子句中的ALL运算符

该关联如下所示。 InstructorStudent has_many :fees Fee belongs_to :instructor_student 我希望得到所有给定数组中每月详细信息的教师学生。 如果其中任何一个都没有月度详细信息,那么它不应该返回任何记录。 due_month = [“2017-01-01″,”2017-02-01″,,”2017-03-01”] 以下是我试过的查询,我想获得属于所有给定的三个due_month的InstructorStudent,如果任何月份没有数据那么它应该返回nil : @fee_paid = InstructorStudent.first.joins(:fees).where(“fees.monthly_detail = ALL(ARRAY[?]::date[]) AND fees.course_type = ?”, due_month.map{|i| i },”per month”); 编辑1: @ erwin-brandstetter这是我的最终查询 InstructorStudent.where(” instructor_students.Id IN (?)”,Instructor.find(17).per_month_active_student ).joins( “INNER JOIN fees ON fees.instructor_student_id = instructor_students.id LEFT OUTER JOIN fee_payment_notifications ON fee_payment_notifications.fee_id = fees.id” ).where( “fee_payment_notifications.status ? AND fees.monthly_detail […]

Postgresql ORDER BY空格

假设我有一个包含一列的表,即: 5 absolute 5.0 5.1 last 50 5 elite edge 我需要订购它(使用postgresql方法): 5 absolute 5 elite 5.0 5.1 50 edge last 但如果我使用经典的“ORDER BY列ASC”,我得到: 50 5.0 5.1 5 absolute 5 elite edge last 有很多工具,如substring或using,但我无法理解它们是如何工作的。 我需要做什么?

如何将CSV导入已经分配了ID的postgresql?

我有3个CSV文件,每个文件大约150k行。 他们已经在CSV中获得了ID,并且已经在其中保存了assosciations。 是否有一种简单的方法可以跳过id值的自动分配,而是使用CSV中已有的内容?

Postgresql“没有pg_hba.conf条目”错误

我正在为一个rails项目(我正在加入)设置我的本地postgresql数据库,并完成了以下操作: 安装postgres 添加/捆绑’pg’gem 创建名为“foobar”的db用户 创建了一个名为“foobar_development”的数据库 rails应用程序附带了rake db:migrate任务。 当我运行此任务时,我得到以下错误输出: FATAL: no pg_hba.conf entry for host “::1”, user “foobar”, database “foobar_development”, SSL off 我在以下位置找到了一个pg_hba.conf文件: 在/ usr /本地的/ var / Postgres的 这是pg_hba.conf文件的相关部分: # TYPE DATABASE USER ADDRESS METHOD # “local” is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all […]

RAILS:如何查询每个关联都具有非null属性的所有对象

我正在研究Rails 3.0.5和PostgreSQL。 我有一个型号Offer ,有很多Products 。 class Offer < ActiveRecord::Base has_many :products end class Product < ActiveRecord::Base belongs_to :offer end 当您在第三方服务中注册时,该产品的ID会更新。 让我们称之为service_id 。 我想要一个优惠范围,它可以获得在第三方服务中注册的每个产品的所有优惠。 换句话说,如果它的所有产品都有服务ID,我只对商品实例感兴趣。 offer范围: joins(:products).where(“products.service_id is not NULL”) ,只返回至少有一个非null产品的商品。 任何帮助,将不胜感激。 (PS:对不起标题,我尽力解释它。) 编辑: 例如:如果我有2个优惠:Offer1和Offer2。 Offer1的产品为p1和p2,Offer2的产品为p3和p4。 假设p1,p2和p3有服务但p4没有服务。 查询应仅返回Offer1。

安装gem’pg’时为什么会出错?

可能重复: 无法在ubuntu上安装pg gem – 找不到’libpq-fe.h标头 我正在尝试将gem pg添加到我的本地环境中。 但它返回此错误 Errno::EACCES: Permission denied – /Users/me/.rvm/gems/ruby-1.9.3-p362/gems/pg-0.14.1/.gemtest An error occurred while installing pg (0.14.1), and Bundler cannot continue. Make sure that `gem install pg -v ‘0.14.1’` succeeds before bundling. 我该怎么办? 在该错误消失后,现在它返回此错误 Installing pg (0.14.1) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/me/.rvm/rubies/ruby-1.9.3-p362/bin/ruby extconf.rb checking for […]

Rails + Postgres迁移 – 为什么我收到错误“PG :: UndefinedFunction:ERROR:function gen_random_uuid()不存在”?

我的一个Rails迁移使用uuid作为主键。 Postgres扩展gen_random_uuid()应解决此问题,但在安装相关扩展( uuid-ossp )后我仍然会收到错误。

在Rails中对PostgreSQL的大对象进行建模

我需要在我的rails应用程序中保存数据库中的大对象。 我认为我可以在SQL中创建一个表 CREATE TABLE files ( id serial NOT NULL, name string NOT NULL, blob_oid oid NUT NULL ) 然后将数据存储在Ruby中 conn.exec(“BEGIN”) lo = conn.lo_import(data) conn.exec(“COMMIT”) file = File.new file.name = file_name; file.blob_oid = lo.id file.save 首先,这是正确的吗? 其次,我如何描述File in Rails的模型。 Rails中Friend.blob_oid的数据类型是什么? 我可以使用Rails中的迁移创建文件表吗?

使用ActiveRecord和Rails将数据插入postgresql数据库会出现此错误:RuntimeError:ERROR C22003 Minteger o

我正在使用Ruby 1.8.6和rails 2.1.1(我也测试了rails 2.2.2)。 我一直在使用Sqlite3,我最近迁移到Postgresql 8.2.6进行生产使用。 现在出现此错误。 有趣的是,当我复制插入语句并使用psql直接将其插入postgres时它工作正常。 我想问题是在轨道级别的某个地方。 但是,我不知道它是什么。 所以,如果有人知道问题是什么或如何解决它,请告诉我。 RuntimeError: ERROR C22003 Minteger out of range Fint8.c L1008 Rint84: INSERT INTO “resource_usages” (“measurement_type”, “updated_at”, “time”, “max”, “min”, “average”, “tst_data_id”, “created_at”) VALUES(E’jmxMemHeapMax’, ‘2009-01-16 12:54:56.600105’, 1, 5726666752, 5726666752, 5726666752, 2, ‘2009-01-16 12:54:56.600105′) RETURNING “id” /usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/abstract_adapter.rb:147:in `log’ /usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:484:in `execute’ /usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:929:in `select_raw’ /usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:916:in `select’ /usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache’ /usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/abstract/query_cache.rb:61:in […]