Perl对默认值非常好:
: jmglov@laurana; perl -e '@foo; printf "%d\n", $foo[123]'
0
: jmglov@laurana; perl -e '%foo; printf "%d\n", $foo{bar}'
0
Run Code Online (Sandbox Code Playgroud)
Ruby可以做同样的事情,至少对于哈希来说:
>> foo = Hash.new(0)
=> {}
>> foo[:bar]
=> 0
Run Code Online (Sandbox Code Playgroud)
但是这些似乎对数组不起作用:
>> foo = Array.new(0)
=> []
>> foo[123]
=> nil
>> foo[124] = 0
=> 0
>> foo[456] = 0
=> 0
>> foo[455,456]
=> [nil, 0]
Run Code Online (Sandbox Code Playgroud)
是否可以为数组提供默认值,因此当它们自动扩展时,它们会被填充为0而不是nil?
当然,我可以解决这个问题,但要付出代价:
>> foo[457,458] = 890, 321
=> [890, 321]
>> foo[456] += 789
NoMethodError: You have a nil object when you …Run Code Online (Sandbox Code Playgroud) 在我的rails应用程序中,我需要验证用户提供的URL是否真的是一个URL.我只关心HTTP协议(也许是HTTPS,我根本没有考虑过这一点),这让我相信在rails中可能已经存在一些可以为我工作的东西.
如果不是:你能推荐一个正则表达式字符串吗?我在google搜索后发现了一些,但根据用户评论他们似乎都有一两个问题.
谢谢
我有兴趣获取params哈希的嵌套'name'参数.打电话给像
params[:subject][:name]
Run Code Online (Sandbox Code Playgroud)
当params [:subject]为空时抛出错误.为了避免这个错误,我通常写这样的东西:
if params[:subject] && params[:subject][:name]
Run Code Online (Sandbox Code Playgroud)
有没有更清洁的方法来实现这一点?
插件和宝石有什么区别?每种用途有何不同?您在哪里以及为何使用其中一个?
我应该在Rails应用程序中使用哪两个:
DateTime.now or Time.now
Run Code Online (Sandbox Code Playgroud)
在申请中使用两者有什么危害吗?
在上述(now)示例的情况下,两者之间是否会有任何差异?(在我目前的系统中,他们都显示相同的时间)
我刚刚在Windows机器上安装了ruby 1.9.2,Backspace或任何其他箭头键都不起作用.只有当我在Git Bash控制台上打开IRB时才会发生这种情况.但它在Windows控制台上运行良好.对此有何帮助?
注意:IRB在早期版本的ruby的两个控制台上运行良好.
在Ruby中,如果字符串不在选项数组中,我将如何返回true?
# pseudo code
do_this if current_subdomain not_in ["www", "blog", "foo", "bar"]
Run Code Online (Sandbox Code Playgroud)
...或者你知道一个更好的方法吗?
字符串在Ruby中是否可变?根据文件做
str = "hello"
str = str + " world"
Run Code Online (Sandbox Code Playgroud)
使用值创建一个新的字符串对象,"hello world"但是当我们这样做时
str = "hello"
str << " world"
Run Code Online (Sandbox Code Playgroud)
它没有提到它创建了一个新对象,它是否会改变str对象,现在它将具有值"hello world"?
我正在使用Ruby on Rails 3,我想在命名空间中处理模型(类)命名空间.也就是说,如果我有一个名为NS1的名称空间和名为NS2的名称空间的"子名称空间" ,我想在NS2中处理模型(类).
如果我运行脚手架
rails generate scaffold ns1/ns2/Article id:integer title:string
Run Code Online (Sandbox Code Playgroud)
它将生成以下模型文件:
models/ns1/ns2/article.rb file
models/ns1/articles.rb
Run Code Online (Sandbox Code Playgroud)
该models/ns1/articles.rb包含:
module Ns1::Articles
def self.table_name_prefix
'ns1_articles_'
end
end
Run Code Online (Sandbox Code Playgroud)
什么是models/ns1/articles.rb文件?我如何以及为何使用它?您对使用它有什么建议吗?
而且,一般来说,使用Ruby on Rails在命名空间中处理"组合"类的"最佳"方法是什么?