ruby-on-rails - rails/ruby "and return false"语法

标签 ruby-on-rails ruby

我在我正在做的 Rails 教程中看到过这段代码

def access_denied
  redirect_to login_path, :notice => "Please log in to continue" and return false
end

在学习 Rails 之前,我对 ruby​​ 进行了大量研究,但我读过的所有书籍都没有涵盖这里发生的这种“并返回 false”语法。我在 rails 语法中找不到任何提及它的地方,是否有人能够提供链接或任何解释来解决这个问题?

我不明白这里需要“和”,因为我认为 ruby​​ 总是会返回最后计算的表达式。

最佳答案

and 只是为了让您能够在与前一条语句相同的行中写入 return false

相当于这样做:

redirect_to login_path, :notice => "Please log in to continue"
return false

它并不完全相同,因为如果 redirect_to 方法返回不是 nilfalse< 的东西,它只会返回 false/strong> 但是因为它几乎总是返回既不是 nil 也不是 false 的东西,所以总是执行语句的右侧(和 false被退回)。

Ruby 中的 and 只是 && 的别名,其行为与它完全一样,只有一个区别,它的优先级低于语句的所有其他部分,所以首先它评估它左边的任何东西然后被应用。 Ruby 也有 or,它与 || 相同,但在表达式中具有较低的优先级。

关于ruby-on-rails - rails/ruby "and return false"语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8825396/

相关文章:

ruby-on-rails - 找不到您的/home/rails/webapp/Gemfile.lock 所需的 'bundler' (2.1.4)。 (Gem::GemNotFoundException) 运行 docker build

ruby-on-rails - Rails 更改区域设置返回当前页面

ruby-on-rails - 如何找到 Rails 中链接的正确路径

php - Ruby/Rails eqv PHP get_meta_tags

ruby-on-rails - 如何在 Heroku 中重命名文件

ruby-on-rails - Rails I18n _html 后缀规则和从 Controller 调用的翻译助手

ruby-on-rails - Rails 记录不关联

ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式?

ruby - 如果父 ruby​​ 脚本被终止,则由 IO.popen 自动终止进程

html - 如何使用 Hpricot 删除 html 元素的样式属性?