Rails 3:“未定义的局部变量或方法”如果我将内容放在部分中

Posted

技术标签:

【中文标题】Rails 3:“未定义的局部变量或方法”如果我将内容放在部分中【英文标题】:Rails 3: "undefined local variable or method" if I put content in a partial 【发布时间】:2011-08-19 22:37:57 【问题描述】:

我有下表

<table id="rating">
    <thead>
        <tr>
            <th colspan="2">Photo Ratings</th>
        </tr>
    <tr>
        <td>Average Rating</td>
        <td><%= msg.average_rating %></td>
    </tr>
    <tr>
        <td>Your Rating</td>
        <td><%= current_user_rating %></td>
    </tr>
    </thead>
</table>

如果我把它放在视图中,效果很好,但是当我把它放在部分_rating.html.erb 中时,我得到了

undefined local variable or method 'msg' for #&lt;#&lt;Class:0x000003463da1570&gt;:0x003463d9f388&gt;

我正在通过&lt;%= render :partial =&gt; "rating" %&gt; 链接到部分链接,我必须在部分链接中添加什么才能避免出现错误?谢谢

【问题讨论】:

【参考方案1】:

您需要将msg 变量添加到部分模板的局部变量中。

<%= render :partial => "rating", :locals =>  :msg => msg  %>

【讨论】:

@colbern 别忘了current_user_rating :) @rubish 如果那个不是辅助方法:)

以上是关于Rails 3:“未定义的局部变量或方法”如果我将内容放在部分中的主要内容,如果未能解决你的问题,请参考以下文章

nameerror 未定义的局部变量或方法 `log_out' 你的意思是? logout_url ruby​​ on rails

NameError(未定义的局部变量或方法 `devise_parameter_sanitizer'

Action Mailer NameError:未定义的局部变量或方法“smtp”

NameError:未定义的局部变量或方法“记录器”

JBuilder中未定义的局部变量或方法“json”

Puma 未定义的局部变量或方法“守护进程”错误