标签: ruby

如何在rails中验证日期?

我想在Ruby on Rails中验证模型中的日期,但是,日期,月份和年份值在到达我的模型时已经转换为不正确的日期.

例如,如果我在我的视图中输入2009年2月31日,当我Model.new(params[:model])在我的控制器中使用时,它会将其转换为"2009年3月3日",然后我的模型将其视为有效日期,但它是不正确的.

我希望能够在我的模型中进行此验证.我有什么方法可以,或者我是否完全错了?

我发现这个" 日期验证 "讨论了这个问题,但它从未得到解决.

ruby validation ruby-on-rails date

90
推荐指数
5
解决办法
10万
查看次数

Ruby执行尾部调用优化吗?

功能语言导致使用递归来解决许多问题,因此许多函数执行尾调用优化(TCO).TCO导致从另一个函数调用函数(或者本身,在这种情况下,这个特性也称为Tail Recursion Elimination,它是TCO的一个子集),作为该函数的最后一步,不需要新的堆栈帧,这减少了开销和内存使用.

Ruby显然已经从函数式语言(lambdas,map等函数等)中"借用"了许多概念,这让我很好奇:Ruby是否执行尾调用优化?

ruby functional-programming tail-recursion

90
推荐指数
3
解决办法
1万
查看次数

在ruby 1.9中调试

你们在ruby 1.9中用什么调试?rdebug似乎不兼容..那里有什么东西吗?

ruby debugging rdebug

90
推荐指数
3
解决办法
3万
查看次数

在大型Rails应用程序中加速RSpec测试

我有一个Rails应用程序,在我的RSpec测试中有超过2,000个例子.毋庸置疑,这是一个很大的应用程序,还有很多需要测试的地方.在这一点上运行这些测试是非常低效的,并且因为它需要很长时间,所以在推动新构建之前我们几乎不鼓励编写它们.我在我的spec.opts中添加了--profile来查找运行时间最长的示例,其中至少有10个运行平均需要10秒.在RSpec专家中你是正常的吗?一个例子10秒完全太长了吗?我意识到,有2000个例子,需要花费大量时间来彻底测试所有内容 - 但此时4小时有点荒谬.

你看到你运行时间最长的例子有多少次?我可以做些什么来解决我现有的规格,以找出瓶颈并帮助加快速度.在这一点上,每分钟都会有所帮助.

ruby bdd unit-testing rspec ruby-on-rails

90
推荐指数
3
解决办法
2万
查看次数

如何将Ruby类名转换为下划线符号?

如何以编程方式将类名FooBar转换为符号:foo_bar?像这样的东西,但是正确处理骆驼的情况?

FooBar.to_s.downcase.to_sym
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming ruby-on-rails

90
推荐指数
3
解决办法
4万
查看次数

90
推荐指数
7
解决办法
4万
查看次数

Ruby Metaprogramming:动态实例变量名称

假设我有以下哈希:

{ :foo => 'bar', :baz => 'qux' }
Run Code Online (Sandbox Code Playgroud)

如何动态设置键和值以成为对象中的实例变量...

class Example
  def initialize( hash )
    ... magic happens here...
  end
end
Run Code Online (Sandbox Code Playgroud)

...所以我最终在模型中得到以下内容......

@foo = 'bar'
@baz = 'qux'
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming instance-variables

90
推荐指数
4
解决办法
4万
查看次数

如何从终端运行Ruby代码?

我需要从终端运行几行Ruby代码,但我找不到所需的参数.

你能解释一下怎么做吗?

ruby terminal console

90
推荐指数
2
解决办法
14万
查看次数

NameError(未初始化的常量Paperclip :: Storage :: S3 :: AWS):

我正在尝试将图像合并到我的网络应用程序中,并在删除了一些功能后继续遇到此错误.它归结为我的"创建"应用程序控制器,我不完全确定我应该从哪里开始.

2015-02-06T20:30:12.292187+00:00 app[web.1]:    (1.9ms)  ROLLBACK
2015-02-06T20:30:12.296299+00:00 app[web.1]: NameError (uninitialized constant Paperclip::Storage::S3::AWS):
2015-02-06T20:30:12.296301+00:00 app[web.1]:   app/controllers/articles_controller.rb:24:in `create'
2015-02-06T20:45:14.691084+00:00 app[web.1]: [paperclip] saving /articles/images/000/000/013/original/git.jpeg
2015-02-06T20:45:14.698744+00:00 app[web.1]: Completed 500 Internal Server Error in 584ms
2015-02-06T20:45:14.700871+00:00 heroku[router]: at=info method=POST path="/articles" host=preston.herokuapp.com request_id=d9d02257-3616-4686-bce5-3d912cd528c2 fwd="76.22.102.38" dyno=web.1 connect=1ms service=698ms status=500 bytes=1754
Run Code Online (Sandbox Code Playgroud)

Articles_controller.rb

class ArticlesController < ApplicationController
http_basic_authenticate_with name: "name", password: "password", except: [:index, :show]

    def index
        @articles = Article.all.order("created_at DESC")
    end

    def show
        @article = Article.find(params[:id])
    end

    def new
        @article = Article.new
    end 

    def edit
        @article = Article.find(params[:id])

    end …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip amazon-web-services

90
推荐指数
2
解决办法
3万
查看次数

Array#each vs. Array #map

hash = { "d" => [11, 22], "f" => [33, 44, 55] }

# case 1
hash.map {|k,vs| vs.map {|v| "#{k}:#{v}"}}.join(",")
=> "d:11,d:22,f:33,f:44,f:55"

# case 2
hash.map {|k,vs| vs.each {|v| "#{k}:#{v}"}}.join(",")
=> "11,22,33,44,55"
Run Code Online (Sandbox Code Playgroud)

唯一的区别是案例1使用vs.map,案例2使用vs.each.

这里发生了什么?

ruby arrays enumerable

89
推荐指数
3
解决办法
5万
查看次数