我不知道如何解释这一点,我愿意接受建议。
以下是一个例子:
User.last.orders.detect { |user_order| user_order.query.id == 107 }
这不起作用;
NameError: undefined local variable or method ` user_order' for main:Object
from (pry):51:in `block in <main>'
但这有效:
User.last.orders.detect do |user_order|
user_order.query.id == 107
end
这只是一个简单的例子。我真的不明白为什么会这样。谢谢!
答案 0 :(得分:2)
问题是管道和class Skill(models.Model):
"""[FR] Compétence
A Skill can be evaluated through questions answered by a student.
Thus, when evaluated, a Skill can be acquired by a student, or not.
"""
code = models.CharField(max_length=20, unique=True, db_index=True)
"""The Skill reference code"""
name = models.CharField(max_length=255)
"""The Skill name"""
description = models.CharField(max_length=255)
之间还有一个额外的“不间断空间”,这就是消息说明的原因:
NameError:未定义的局部变量或方法`user_order'for 主:对象
您的实际变量是“user_order”而不是“user_order”。
当同时按下 alt 和 space (在OSX上)时,通常会发生这种情况,这在Ruby中为“内联”块打开花括号时很常见。