在一个视图中我使用
render :partial => "form_linktype_#{@linkjob.link_type}", :locals => {:linkjob => @linkjob }
其中@linkjob是链接类型的实例变量
在我使用的另一个视图中
render :partial => "shared/quality_requirements/linktype_#{o.link_type}", :locals => {:linkjob => o}
其中 o 是 Linktype 类型的局部变量。两种情况下的两个变量都包含相同的信息。唯一的区别是它们的范围。
不过,如果我使用
<b><%= linkjob.atext %></b>
在部分情况下,它为第二种情况呈现精美,但抛出
undefined local variable or method `linkjob' for #<#<Class:0xab61db8>:0xab5a964>
在第一种情况下。
有没有办法将实例变量转换为局部变量或以某种方式解决此问题?
您可以尝试将第一个视图更改为
render :partial => "form_linktype_#{@linkjob.link_type}", :locals => {:linkjob => @linkjob || nil}