如何缩短ruby中的一行if语句,该语句仅在字段不为空时执行

时间:2013-05-18 14:19:05

标签: ruby-on-rails ruby ruby-on-rails-3 if-statement coding-style

如果函数没有返回空,我有以下if语句用函数的结果填充字段。

我想我之前看到的例子是空检查和函数可以在if中组合而不必在条件下再次重复整个函数。

我正在寻找新的DRY建议!

icons = page.search("theicons").to_s if !page.search("theicons").to_s.empty?

5 个答案:

答案 0 :(得分:4)

错误

theicons = page.search("theicons").to_s
icons = theicons unless theicons.empty?

答案 1 :(得分:1)

如果您正在使用Rails,可以将其缩短为:

icons = page.search("theicons").to_s.presence || icons

答案 2 :(得分:0)

您可以使用逻辑运算符:

icons = (page.search('theicons') || default_value).to_s

答案 3 :(得分:0)

试试这个:

icons = page.search("theicons").to_s.present? && page.search("theicons").to_s

注意:present?是铁路助手。

答案 4 :(得分:0)

icons = page.search("theicons") unless page.search("theicons").present?

icons ||= page.search("theicons")