Rails 3本地变量未被传递到局部视图

3
有人知道为什么我在向 Ruby 部分传递局部变量时遇到以下问题吗?
我的部分(摘录):
 <div class="control-group">
   <%= field_prefix %>
   <%= label_tag t("shared.email"),nil,:class => "control-label" %>
   <div class="controls">
   <%= email_field_tag "[email]", contact.nil? ? "" : contact[:email]  %>
   </div>
 </div>

我的部分内容是通过以下方式进行包含的:

 <%= render "shared/contact", :field_prefix => 123 , :contact => @person.contact %>

如果我这样做,它不会起作用,第二个本地传递的参数(field_prefix)没有传递:

 <%= render :partial => "shared/contact", :locals => {:field_prefix => 123 , :contact => @person.contact } %>

我总是收到错误消息,说本地变量"field_prefix"未被识别:

undefined local variable or method `field_prefix' for #<#:0x5837418>

这是来自局部视图的。


在局部视图的第二行将 field_prefix 改为符号 :field_prefix 对于帮助有所帮助吗? - Michael Durrant
似乎是缓存或 IDE 问题(有 Bug 吗?)请参见我的最后一篇帖子,抱歉。 - Thomas233
3个回答

1

只是一次正常检查,请确认您正在查看的部分是否正确?当这种情况发生在我身上时,我以为我正在查看正确的文件,结果意识到我正在查看错误的代码。


1

大部分时间我真的很喜欢Ruby,但有时它非常非常令人恼火和神秘 :-/

我不得不重新启动我的IDE(RubyMine)和集成服务器,才能在不更改任何源代码的情况下使其正常工作。

当然,昨天我第一次尝试时也保存了源代码,但这个IDE似乎有一个缓存或类似的东西。


0
在我的情况下,重新启动RubyMine并不足够,但是通过执行一些文件和gt;修复IDE的步骤解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接