ruby写这四条指令的最短路径是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby写这四条指令的最短路径是什么?相关的知识,希望对你有一定的参考价值。

u = User.email_equals("tabaluga@gmail.com").first
s = u.setting
s.regular_info = false
s.save

有谁知道怎么写得更短?也许在一条线上?那将是真棒。谢谢,merci :)

答案
User.email_equals("tabaluga@gmail.com").first.setting.update_attribute(:regular_info, false)

(没有便于检查的控制台,但认为应该工作..)

另一答案

我不确定你如何定义你的email_equals方法,但是Rails提供了基于动态属性的查找器,它返回第一个匹配或nil未找到。

User.find_by_email("tabaluga@gmail.com").setting.update_attribute(:regular_info, false)
另一答案

虽然你可以写一行,但我建议不要这样做。这使您的代码更易于阅读和维护。

这也是一个孤立的例子;实际上,电子邮件不会被硬编码,它将存储在自己的变量中,可能是一个参数。

一个班轮

User.email_equals("tabaluga@gmail.com").first.setting.update_attribute(:regular_info, false)

两个班轮

user = User.email_equals("tabaluga@gmail.com").first
user.setting.update_attribute(:regular_info, false)

# Or...
user_setting = User.email_equals("tabaluga@gmail.com").first.setting
user_setting.update_attribute(:regular_info, false)

# More readable, but not maintainable
User.email_equals("tabaluga@gmail.com").first \ 
  .setting.update_attribute(:regular_info, false)

三个班轮

user = User.email_equals("tabaluga@gmail.com").first
setting = user.setting
setting.update_attribute(:regular_info, false)

以上是关于ruby写这四条指令的最短路径是什么?的主要内容,如果未能解决你的问题,请参考以下文章

触电会内部动态收获财富和自由的最短路径是拥抱互联网,拥抱趋势,拥抱市场

两个字符串之间的最短路径

算法_最短路径

图的应用——最短路径(迪杰斯特拉算法)

多源最短路径Floyd算法

蚂蚁很忙——几何体中的最短路径