Ruby on Rails - 与部分中的实例变量和局部变量冲突



在一个视图中我使用

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}

最新更新