我想在Ruby on Rails中验证模型中的日期,但是,日期,月份和年份值在到达我的模型时已经转换为不正确的日期.
例如,如果我在我的视图中输入2009年2月31日,当我Model.new(params[:model])在我的控制器中使用时,它会将其转换为"2009年3月3日",然后我的模型将其视为有效日期,但它是不正确的.
我希望能够在我的模型中进行此验证.我有什么方法可以,或者我是否完全错了?
我发现这个" 日期验证 "讨论了这个问题,但它从未得到解决.
功能语言导致使用递归来解决许多问题,因此许多函数执行尾调用优化(TCO).TCO导致从另一个函数调用函数(或者本身,在这种情况下,这个特性也称为Tail Recursion Elimination,它是TCO的一个子集),作为该函数的最后一步,不需要新的堆栈帧,这减少了开销和内存使用.
Ruby显然已经从函数式语言(lambdas,map等函数等)中"借用"了许多概念,这让我很好奇:Ruby是否执行尾调用优化?
我有一个Rails应用程序,在我的RSpec测试中有超过2,000个例子.毋庸置疑,这是一个很大的应用程序,还有很多需要测试的地方.在这一点上运行这些测试是非常低效的,并且因为它需要很长时间,所以在推动新构建之前我们几乎不鼓励编写它们.我在我的spec.opts中添加了--profile来查找运行时间最长的示例,其中至少有10个运行平均需要10秒.在RSpec专家中你是正常的吗?一个例子10秒完全太长了吗?我意识到,有2000个例子,需要花费大量时间来彻底测试所有内容 - 但此时4小时有点荒谬.
你看到你运行时间最长的例子有多少次?我可以做些什么来解决我现有的规格,以找出瓶颈并帮助加快速度.在这一点上,每分钟都会有所帮助.
如何以编程方式将类名FooBar转换为符号:foo_bar?像这样的东西,但是正确处理骆驼的情况?
FooBar.to_s.downcase.to_sym
Run Code Online (Sandbox Code Playgroud) 假设我有以下哈希:
{ :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)
?
我正在尝试将图像合并到我的网络应用程序中,并在删除了一些功能后继续遇到此错误.它归结为我的"创建"应用程序控制器,我不完全确定我应该从哪里开始.
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) 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 ×10
arrays ×1
bdd ×1
console ×1
date ×1
debugging ×1
enumerable ×1
logging ×1
paperclip ×1
rdebug ×1
rspec ×1
terminal ×1
unit-testing ×1
validation ×1