- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
错误(undefined method 'id' for false:FalseClass
)引用了这一行:
if current_user && current_user.admin? || current_user.id == id.to_i
为什么会产生错误?如果第一个 &&
条件失败,它不应该到达 current_user.id
吗?
最佳答案
表达式
current_user && current_user.admin? || current_user.id == id.to_i
解析如下
(current_user && current_user.admin?) || (current_user.id == id.to_i)
因此,当 current_user 为 false 时,评估会像这样
(false && current_user.admin?) || ?
(false) || ?
(false.id == id.to_i)
# \\ KABOOM! //
它可能应该表达如下,带括号,其中方法仅在 current_user 不是 false/nil 时调用。
current_user && (current_user.admin? || current_user.id == id.to_i)
或者,考虑使用其他流程控制结构,如 if
和/或封装逻辑的离散方法。
current_user 可以是 false
也很奇怪:nil
可能更适合“没有当前用户”的情况。
关于ruby-on-rails - 未定义的方法 `id' 为假 :FalseClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24320221/
我创建了一个简单的 rails 应用程序,当我运行 rails 时。它发出这堆错误:-s 我试图重新安装 activerecord 但它无法解决问题。此外,我尝试使用 rvm 删除所有 gemset
这是一个理论问题:是否可以将 FalseClass 的行为更改为像 TrueClass 一样?可以覆盖 to_s、xor、&、|行为,但这还不够。 如果你喜欢测试驱动开发,请听从我同事的建议: put
当我做 rake db:migrate 时,我得到这个错误: rake db:migrate rake aborted! NoMethodError: undefined method `each'
错误(undefined method 'id' for false:FalseClass)引用了这一行: if current_user && current_user.admin? || curr
NilClass、TrueClass 和FalseClass 各有一个实例,即nil、true和false,它们是常量,拥有这些类的目的是什么?为什么它们不能是 Object 类的实例,并且所有相关方
我想弄清楚是否有一种简单的方法来执行以下操作,而不是将 to_i 方法添加到 TrueClass/FalseClass。 这是一个难题:我的 Rails 应用程序中有一个 bool 字段 - 显然在
def next_prime_number (last_known_prime) while true last_known_prime++ found_factor = fals
我对我的类(class)模型进行了一些验证,并且我能够使用 valid? 方法在创建操作下的 Controller 上突出显示验证问题。但是,如果我以类似的方式尝试 valid?,我会得到 undef
这里是日志 umair-2:game-minion umairejaz$ rails c /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/
安装(和删除)Compass 后,我的 Rails 应用程序出现了一些问题。 bundle install 给我以下信息: /Users/[..]/.rvm/gems/ruby-1.9.2-head@
当发现这个时,我正在研究序列化值。 Ruby 有一个 TrueClass类,和一个 FalseClass类,但它没有 Boolean 类。我想知道这是为什么。 我发现使用 Boolean 有一些优势;
我正在升级从 3.2 继承到 4.0.1 的 Rails 应用程序。我在这里完成了边缘指南: http://edgeguides.rubyonrails.org/upgrading_ruby_on_r
为什么不能在Fixnum,Bignum,Float,上定义singleton方法Symbol类对象,但是FalseClass和TrueClass可以有吗? C:\>ruby -v ruby 2.0.0
我是一名优秀的程序员,十分优秀!