1

使用 Rails 3。这是一个示例方法:

  def all_users
    users.as_json
  end

我们必须总是有return一个方法吗?以上工作,但

  def all_users
    u = users.as_json
    u
  end

另一件事,我尝试申请returning,但必须始终附上do ... end?

有更好的方法来编写方法吗?

4

2 回答 2

1

在 Ruby 中,返回方法的最后执行(感谢 mharper)行。

所以这:

def all_users
  users.as_json
end

这:

def all_users
  u = users.as_json
  u
end

还有这个:

def all_users
  u = users.as_json
  return u
end

做同样的事。

于 2013-03-02T00:46:53.010 回答
1

Ruby 主义者喜欢尽可能省略return关键字。所以在你的情况下,这是编写方法的首选方式

def all_users
  users.as_json
end

对于你的第二个问题

I tried to apply returning, but it must always be enclosed with do ... end?

doendare 作为组合用于在 Ruby 中编写称为“块”的东西。实际上,块是一种特殊的迭代方法,适用于数组、哈希、可枚举等。您不必在and中包含return关键字。doend

于 2013-03-02T00:48:25.540 回答