Rails:如何连接到旧的PostgreSQL(你的PostgreSQL版本(70417)太旧了,请升级!)

尝试建立与远程PostgreSQL的连接,我收到错误: RuntimeError:您的PostgreSQL版本(70417)太旧了,请升级! 来自/Users/panayi/.rbenv/versions/1.9.3-p362/lib/ruby/gems/1.9.1/gems /activerecord-3.2.11/lib/active_record/connection_adapters /postgresql_adapter.rb:331:in`initialize “ 我无法访问PostgreSQL,因此无法升级。 我试过使用旧的pg gem: # Gemfile gem ‘pg’, ‘~> 0.9.0’ 但后来我得到: LoadError:请安装postgresql适配器: gem install activerecord-postgresql-adapter (无法激活pg(〜> 0.11),已激活pg-0.9.0。确保所有依赖项都已添加到Gemfile中。) 我被卡住了。

Spring服务器:超时错误

我正在尝试使用Rails schedule.rb文件运行cron-task。 该任务调用以ruby编写的函数。 该function运行完美。 但是当我尝试作为cron运行时,我得到了这个错误。 Starting Spring server with `/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/spring-2.0.2/bin/spring server –background` timed out after 20 seconds Spring(2.0.2)安装完美且工作正常。 知道怎么解决这个问题吗?

Ruby / Rails / SQLite的一键安装?

我已经习惯了MAMP的One-Click安装本地环境。 是否存在Ruby等效…您运行的下载并立即获得本地运行的最新版本的Ruby,Rails,SQLite? 我正在使用Mac,运行Leopard,并且我知道所有上述技术都附带Leopard(除了SQLite之外)。 我参考较新版本的书籍以及我需要的最后一件事是尝试改进教程以使用我的版本。 还有一个不太重要的问题:什么是“gem”,我需要确保的东西也是完全更新的?

我可以有条件地跳过在同一个文件中加载“更多”ruby代码吗?

我可以有条件地跳过在同一个文件中加载“更多”ruby代码, 如果找不到库(通过require加载)? begin require ‘aws-sdk’ rescue LoadError puts “aws-sdk gem not found” return #does not work. nor does next end # code after here should not be executed as `aws-sdk` gem was not found puts “=== should not get executed” namespace :db do desc “import local postgres database to heroku. user and database name is […]

Ruby Regex – 需要替换正则表达式匹配中每个字符的出现

这是我的字符串: mystring = %Q{object1=”this is, a testyay’, asdkf’asfkd”, object2=”yo ho’, ho”} 我将在逗号上拆分mystring ,因此我想(暂时)分出位于转义引号之间的逗号。 所以,我需要匹配转义引号+一些字符+一个或多个逗号+转义引号,然后在匹配的字符串中gsub逗号。 我想出的gsub的正则表达式是/(“.*?),(.*?”)/ ,我就像这样使用它: newstring = mystring.gsub(/(“.*?),(.*?”)/ , “\\1|TEMPSUBSTITUTESTRING|\\2”) ,但这只替换它在转义引号之间找到的第一个逗号。 如何让它替换所有逗号? 谢谢。

Rails collection_select不保存

我有一个非常简单的rails应用程序来提问。 三个模型问题,用户,老师。 问题属于用户和教师。 用户和老师有很多问题。 我正在尝试让用户和教师在问题_form.html.erb文件中进行选择。 我有这个collection_select,它显示正常,但它不会在Questions user_id字段中保存用户ID。 true}) %> 1. 2. 3. 4. 5. 6. 该模型 输入 收集用户 什么会得救 显示的内容 提示“请选择” 请告诉我将user.id保存到question.user_id的错误

irb中的Ruby字符串比较和字符编码

这是错误: => [“Mænd med navnet Kim”, “30.094”, “29.946”, “-148”, “Kvinder med navnet Kim”, “341”, “345”, “4”, “Mænd med navnet Kim Hansen”, “1.586”, “1.573”, “-13”, “Kvin der med navnet Kim Hansen”, “5”, “5”, “0”, “Mænd og kvinder med efternavnet Hans en”, “226.040”, “223.478”, “-2.562”] irb(main):094:0> irb(main):095:0* @tester.index(“Mænd med navnet Kim”) => nil irb(main):096:0> @tester.index(“Kvinder med navnet […]

如何防止BigDecimal截断结果?

跟进这个问题 : 我想计算1/1048576并得到正确的结果,即0.00000095367431640625。 使用BigDecimal的/截断结果: require ‘bigdecimal’ a = BigDecimal.new(1) #=> # b = BigDecimal.new(2**20) #=> # n = a / b #=> # n.to_s(‘F’) #=> “0.000000953674316406” <- should be …625 这真让我感到惊讶,因为我觉得BigDecimal会起作用。 为了得到正确的结果,我必须使用具有显式精度的div : n = a.div(b, 100) #=> # n.to_s(‘F’) #=> “0.00000095367431640625” <- correct 但我真的不明白那个精确的论点。 为什么我必须指定它以及我必须使用什么值才能获得未截断的结果? 这甚至可以称为“任意精度浮点十进制算术”吗? 此外,如果我通过以下方式计算上述值: a = BigDecimal.new(5**20) #=> # b = […]

ruby中的“个人”方法

我正在寻找一种使方法“个人化”的方法 – 注意不要私有给一个class级 这是一个例子 – 通过“个人”我的意思是方法“foo”的行为 class A def foo “foo” end end class B < A def foo "bar" end end class C < B end a=A.new; b=B.new;c=C.new 我正在寻找一种产生以下行为的方法 a.foo #=> “foo” b.foo #=> “bar” c.foo #=> “foo” (ultimate base class method called)

使用Squeel时,是否可以有条件地在where块中添加子句?

首先,我使用Rails v3.2.9与Squeel 1.0.13,这是我正在尝试做的事情: 我想使用三种识别信息中的任何一种搜索客户 – 姓名,出生日期(dob)和社会保险号码(罪)。 结果集必须包含任何具有任何标识符的记录 – 条件的OR。 我以前在Squeel做过这个,看起来像是这样的: scope :by_any, ->(sin, name, dob){ where{(client.sin == “#{sin}”) | (client.name =~ “%#{name}%”) | (client.dob == “#{dob}”)} } 只要我提供所有标识符,这都可以正常工作。 但是,如果我只有一个名字怎么办? 以上范围导致: SELECT “clients”.* FROM “clients” WHERE (((“clients”.”sin” IS NULL OR “clients”.”name” ILIKE ‘%John Doe%’) OR “clients”.”dob” IS NULL)) 这包括sin为null的客户端集,以及dob为null的客户端集以及名为“John Doe”的请求客户端集。 因此,请尝试有条件地将where子句添加到where块。 起初,我尝试使用nil检查值? 方法: def self.by_any (sin, […]