与部分中的实例变量和局部变量冲突

时间:2011-05-19 15:07:01

标签: ruby-on-rails partial instance-variables local-variables

在一个视图中我使用

render :partial => "form_linktype_#{@linkjob.link_type}", :locals => {:linkjob =>  @linkjob }

其中@linkjob是Linktype

类型的实例变量

在另一个视图中我使用

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>

在第一种情况下。

有没有办法将实例变量转换为局部变量或以其他方式解决此问题?

1 个答案:

答案 0 :(得分:0)

您可以尝试将第一个视图更改为

render :partial => "form_linktype_#{@linkjob.link_type}", :locals => {:linkjob =>  @linkjob || nil}