首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails 4风格的带有lambda和参数的作用域?

Rails 4风格的带有lambda和参数的作用域?
EN

Stack Overflow用户
提问于 2013-05-16 20:56:14
回答 6查看 98.9K关注 0票数 147

我想知道在Rails 4中是如何完成以下操作的,或者我只是使用Rails 3的方法来使用lambda,它可以用4传递参数的方式与用3传递参数的方式相同。

我是Rails 3的新手,正在尝试使用一些运行Rails 4的示例。

下面是我的Rails 3代码:

代码语言:javascript
复制
class Person < ActiveRecord::Base
  scope :find_lazy, lambda {|id| where(:id => id)}
end

# In console I can call
Person.find_lazy(1)

所以如果这是Rails4的方法就是使用-> {},这是一个λ,对吧,scope :all_lazy, -> { select("*") },如果我需要一个参数怎么办。在使用-> {}时,我尝试了一些不同的想法,并在控制台中得到了参数错误。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-05-16 21:03:38

我认为应该是:

代码语言:javascript
复制
scope :find_lazy, -> (id) { where(id: id) }
票数 312
EN

Stack Overflow用户

发布于 2013-08-10 03:36:12

Ruby也没有弃用老的lambda风格,所以如果你觉得使用它更舒服,那就试试吧。

我个人不喜欢stabby lambda的语法,但最终它们可能会成为标准,所以习惯它们并不会有什么坏处。

票数 11
EN

Stack Overflow用户

发布于 2015-11-27 21:03:44

Rails 4,您可以执行以下操作:

代码语言:javascript
复制
scope :find_lazy, -> (id) { where(id: id) }

那是在古老的红宝石里:

代码语言:javascript
复制
:id => id

更好的哈希:

代码语言:javascript
复制
id: id
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16588077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档