Rails 三元运算符和“this”
Rails 是否有像 javascript/Jquery 那样的 this
?
举个例子:
User.find_by_email(params[:candidate][:email].present? ? (u = this.id) : (u = 'not here')
或者:
if User.find_by_email(params[:candidate][:email].present?
a += 1
user = this
end
我知道在这种情况下可以用更有效的方式重写这段代码,但我的问题是如何使用this
。 Ruby 有这样的东西吗?
Does Rails have a this
like javascript/Jquery does?
Take this example:
User.find_by_email(params[:candidate][:email].present? ? (u = this.id) : (u = 'not here')
or:
if User.find_by_email(params[:candidate][:email].present?
a += 1
user = this
end
I'm aware that this code might be rewritten in more efficient ways in this case, but my question is about being able to use this
. Does Ruby have something like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在类的上下文中,您使用
self
。在这些情况下,尽管此代码不在
User
上下文中,所以您必须进行分配。在这种情况下,我更喜欢
.any?
而不是.present?
,因为它读起来更好。In the context of a class you use
self
.In these cases though this code is not in
User
context so you have to make an assignment.I prefer
.any?
to.present?
in this context as it reads better.Ruby 使用
self
来表示this
。我不太确定您是否需要使用 self 来解决您的问题。第一个场景可以重写为:
第二个场景可以重写为:
Ruby uses
self
to denotethis
. I am not quite sure if you need to useself
for your problems.First scenario can be rewritten as:
Second scenario can be rewritten as:
我猜您的情况更惯用的 ruby 方法将类似于以下内容:
但如果没有看到所有代码,就很难说。
I'm guessing the more idiomatic ruby approach for your case would be something like the following:
but it's hard to say without seeing the all code.