:limit和limit:有什么区别?我假设第一种方法是在Ruby on Rails中限制条目大小的方法。第二个是用来干什么的?我也不知道把n列放在右边的意义是什么。
发布于 2015-04-30 02:09:49
这可能是散列表示法的问题。
Ruby 1.8和之前的版本使用这样的样式:
method(:limit => 10)Ruby 1.9和更新的版本有一种新的样式,看起来像这样:
method(limit: 10)新的符号更像Python和JavaScript等其他语言中的符号。不过,它们在功能上是相同的,因为您可以使用irb检查,它总是以常规表示法显示:
{ test: 'value' }
# => { :test => 'value' }至于你关于limit是什么意思的问题,这实际上取决于你把它传递给什么方法。在模式定义的上下文中,它可以限制字段的大小:
t.string limit: 1024如果它在查询的上下文中,它可能会限制返回的结果数量。每种方法都有自己的解释,因此您需要参考您遇到的每种方法的文档。
发布于 2015-04-30 02:11:30
:limit是symbol类型的值。你可以在Ruby文档上看到更多关于符号的信息。http://ruby-doc.org/core-2.2.2/Symbol.html
limit:是一种语法糖,只有当散列键是符号时,才能将其用作散列键。例如:{ :limit => 10 }是传统的方式。在Ruby1.9.3之后,你可以像{ limit: 10 }一样重写它
发布于 2015-04-30 02:16:02
名称前有冒号:的变量表示它们是符号(唯一标识符),这意味着可以执行以下操作:
symbol = :limit在名称后面使用冒号通常表示哈希键,如下所示:
hash = { limit: 5 }
puts hash[:limit] # returns 5当使用旧版本的ruby时,通常会产生混淆,其中哈希的编写方式如下:
hash = { :limit => 5 }
puts hash[:limit] # returns 5它与上面的语句具有相同的含义。
https://stackoverflow.com/questions/29951235
复制相似问题