如果我有一个名为_string.erb
的部分,并尝试使用以下内容进行渲染:
= render partial: "string", object: "Some string i want to show in some manner"
然后尝试使用名称string
引用我的部分,它会引发错误
undefined local variable or method 'string'
我唯一能想到的是对象名称是保留的。如果有其他事情发生,我很乐意听到它。
为了清楚起见,一切都适用于另一个名字的部分。例如,在使用以下代码呈现的部分dog
中
= render partial: "dog", object: "Some string i want to show in some manner"
我可以毫无问题地引用变量dog
。我也不使用@string。
我意识到我可以通过深入了解实际的源代码(发布此内容后我打算做的)来找到它,但如果有人知道发生了什么,我很乐意听到它。如果我找到解决方案,我会发布它。
编辑 - 经过编辑,添加了由于评论中有关它而引发的确切错误。
编辑 - 我在编写本文时试图简化我的示例,最终证明字符串不是保留关键字,而且我的代码错误,因为我传递的值是nil分贝。
答案 0 :(得分:1)
没有官方明确的保留字列表。在https://reservedwords.herokuapp.com/找到的列表是我遇到过的最好的列表。 String已包含在列表中,因此很可能是您遇到问题的原因。
答案 1 :(得分:1)
我99%肯定我的错误来源是我传入的字符串是nil
。我预计这会在变量名string
下返回nil,但看起来并非如此,我只是错过了它。