在Ruby中,Proc.new { 'waffles' }和之间有什么区别proc { 'waffles' }吗?我发现很少提到第二种语法.
从测试使用irb,我没有发现任何明显的差异.第一个是第二个语法糖吗?
我试图理解为什么我们真的需要rubda(或任何其他语言)lambda或proc?
#method
def add a,b
c = a+b
end
#using proc
def add_proc a,b
f = Proc.new {|x,y| x + y }
f.call a,b
end
#using lambda function
def add_lambda a,b
f = lambda {|x,y| x + y}
f.call a,b
end
puts add 1,1
puts add_proc 1,2
puts add_lambda 1,3
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法进行简单的添加:1.正常函数def,2.使用proc和3.使用lambda.
但是为什么以及在现实世界中使用lambda?任何无法使用函数和lambda应该使用的示例.
如何使用单个回形针字段来处理不同的文件类型.例如,我有一个带有回形针方法的文件模型,该方法说:
has_attached_file :file
Run Code Online (Sandbox Code Playgroud)
此文件可以是图片,音频,视频或文档.
如果它是一张图片,我怎样才能使它has_attached_file :file能够以这种方式处理图片:
has_attached_file :file, styles: {thumb: "72x72#"}
Run Code Online (Sandbox Code Playgroud)
然后,如果它是其他文档类型,它将在没有样式的情况下正常工作,因此我不必为不同的文件类型创建字段.
我试图用来validates_timeliness确保SliderImage.start始终存在SliderImage.stop:
class SliderImage < ActiveRecord::Base
validates_datetime :start, :stop
validates :start, :timeliness => {:before => stop}
end
Run Code Online (Sandbox Code Playgroud)
但是当然stop还没有定义。我该怎么做?