ruby-on-rails - Rails 实例变量未在控制器的“或”内分配
问题描述
Rails 5.2 项目;在控制器中,我有:
def show
binding.pry
@correct_user = false
some_method or (@correct_user=correct_user) or return
# -> here the value of @correct_user is false
# some other code here
end
some_method
评估为假;correct_user
方法在这里计算为真;return
没有达到,但在那个@correct_user
var 值之后就是false
为什么会这样;
我在“rails 控制台”中进行了另一项测试:
irb(main):001:0> def f
irb(main):002:1> return false
irb(main):003:1> end
=> :f
irb(main):004:0> def a
irb(main):005:1> return true
irb(main):006:1> end
=> :a
irb(main):007:0> @t=false
=> false
irb(main):008:0> f or (@t=a) or return
=> true
irb(main):009:0> @t
=> true
所以这可以按预期工作
解决方案
推荐阅读
- git - 如何获取所有 git 提交到合并分支的列表?
- javascript - 我该如何使用
- java - java.io.FileNotFoundException 当我试图读入我的 Android Studio 项目中的二进制文件时
- android - Recyclerview 数据未通过协程获取
- code-coverage - 是否有任何工具可以显示 .drl 文件的代码覆盖率?我在 Then 部分有一些分支
- c++ - C++:在头文件中生成常量数组实例
- gpu - 如何使用 Vulkan 有效地计算汉明距离
- swift - macOS 上的 Swift:使用 URL 作为参数打开 Chrome
- javascript - 如何使用 _.set 或等效方法从数组中删除元素
- python - 如何使用 selenium 获取 youtube 视频的标签?