Tag: ruby

如何使用Sequel运行原始SQL查询

我还不清楚使用Sequel运行原始SQL查询的正确方法。 目前我正在尝试这个: DB.fetch(“SELECT * FROM zone WHERE dialcode = ‘#{@dialcode}’ LIMIT 1”) do |row| @zonename = row end 如何以原始SQL运行查询然后像正常一样访问结果? if @zonename.name = “UK”

validation失败时设计自定义消息

我在我的应用程序中使用devise作为身份validation引擎。 当设计validation失败时,有没有办法使用自定义消息。 当密码为空时,Devise为我提供以下消息: Password can’t be blank ,但我需要另一条消息。 我该怎么做?

Notepad ++只称为“ANSI”的编码,是否有人知道如何为Ruby调用它?

我有一堆.txt的Notepad ++说(在它的下拉“编码”菜单中)是“ANSI”。 它们中包含德语字符[äöüß],它在Notepad ++中显示得很好。 但是当我在File.read ‘this is a German text example.txt’时,它们并没有显示在irb中。 那么有谁知道我应该给出什么参数Encoding.default_external= ? (我假设这是解决方案,对吗?) 当’utf-8’或’cp850’ ,它会将“äöüß”中的“ANSI”文件读作“\ xE4 \ xF6 \ xFC \ xDF”… (请不要犹豫,在你的答案中提到显而易见的“明显”事物;我几乎和你一样新生,并且仍然知道这个问题就足够了。)

Heroku文件上传问题

我一直在将CSV文件上传到Heroku并进行处理时遇到问题。 它在我的本地环境中工作正常。 请注意,我不需要在Heroku上保存文件,只需在请求期间访问它,以便将其转换为字符串以进行处理并导入数据库。 我想做的是: 上传CSV文件 删除标题块,具体取决于报告来自哪个网络 将CSV数据读入数据库。 这一步很好。 控制器代码: def create @account = Account.find(params[:report][:account_id]) @file = params[:report][:file].read # logger.info file.inspect case @account.provider when “Microsoft AdCenter” then @file.gsub!(/\A(.*)\n\n/im, “”) when “Google AdWords” then @file.gsub!(/\A(.*)\n/i, “”) else raise “Invalid PPC report format” end end 这是堆栈跟踪: Processing ImportController#create (for XX.182.6.XXX at 2010-09-11 09:19:01) [POST] Parameters: {“commit”=>”Upload”, “action”=>”create”, “authenticity_token”=>”XXXXXwoFpvRO3vN8XVXRDg8rikFsj2TFTW7mrcTgg=”, […]

Proc和Lambda之间的差异

Ruby在Proc.new和lambda (或1.9中的->()运算符)创建的Proc.new之间存在差异。 似乎非lambda Procs将splat一个传递给块参数的数组; 通过lambda创建的过程不会。 p = Proc.new { |a,b| a + b} p[[1,2]] # => 3 l = lambda { |a,b| a + b } l[[1,2]] # => ArgumentError: wrong number of arguments (1 for 2) 有没有人对这种行为背后的动机有任何见解?

Rails 3.1 – has_and_belongs_to_many已弃用?

我目前有一个应用程序Rails 3.0.9,有一个非常简单的多对多关系: class User “users_stores” end 我收到了以下警告: 弃用警告:不推荐在has_and_belongs_to_many关联的连接表上具有其他属性,并且将在Rails 3.1中删除。 请使用has_many:通过关联代替。 问题是,我在连接表上没有任何额外的属性: sqlite> .schema users_stores CREATE TABLE “users_stores” (“user_id” integer, “store_id” integer); 是否已在Rails 3.1中完全弃用has_and_belongs_to_many? 我尝试升级到3.1,但我正在使用一些尚未更新的gem,所以我等了一会儿,但理想情况下,我希望我的部分代码很好。

范围数组的索引数组

ruby的范围非常酷。 我最终得到这样的数组: geneRanges = [(234..25), (500..510), (1640..1653)] 然后必须删除它们的一部分。 为此我: genePositions = geneRanges.collect {|range| range.entries }.flatten => [500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653] 它们被操纵,因此一些数字被排除在外,其他数字可能被添加。 我最终可能会这样: [505, 506, 507, 600, 601, 602, 603, 1643, 1644, 1645, 1646, 1647, […]

在给定数字的阶乘中的尾随零的数量 – Ruby

尝试计算给定数量的阶乘中的尾随零的数量时遇到一些麻烦。 这是Codewars面临的挑战之一 – 无法通过。 zeros(12) = 2 #=> 1 * 2 * 3 .. 12 = 479001600 我想我在这里走错路,可能有一种更优雅的ruby方式。 这就是我到目前为止所做的事情。 def zeros(n) x = (1..n).reduce(:*).to_s.scan(/[^0]/) return 0 if x == [] return x[-1].length if x != [] end

分发脱机Ruby on Rails应用程序的选项

我正在开发一个使用Ruby on Rails的应用程序,主要是作为学习语言的借口。 这不是一个基于Web的应用程序 – 也许我选择了错误的语言,但…… 我的理解是,为了在别人的计算机上运行这个应用程序的实例,他们需要在rails上安装ruby,在webserver(或者webrick,或许)上安装,以及我的应用程序代码。 我只是好奇是否有任何其他选项可以将我的应用程序作为独立应用程序分发,或者可能只是一个简单的方法来将Web浏览器和ROR与我的应用程序一起打包进行简单的一步安装?

在Ruby中编辑文件中的每一行

我正在尝试找到一种编辑文件中每一行的简单方法,而我在理解如何使用File类时遇到一些麻烦。 我想编辑的文件有几百行,每行有逗号分隔值。 我只对每行中的第一个值感兴趣,并且我希望在第一个值之后删除所有值。 我试着做以下事情: File.open(‘filename.txt’, ‘r+’) do |file| file.each_line { |line| line = line.split(“,”)[0] } file.write file.close end 哪个不起作用,因为File.write方法要求将内容写为参数。 有人可以告诉我如何达到预期的效果吗?