将变量传递给部分 - 页面显示符号而不是字符串

时间:2012-12-08 21:41:27

标签: ruby-on-rails ruby-on-rails-3.2 partial-views local-variables partials

以下是我视图中调用partial的代码:

<%= render :partial => "/divbox", :locals => { :smush => "Science" } %>

现在这里是_divbox.html.erb中的内容:

<div>
<h1> <%= :smush %> </h1>
</div>

我希望HTML输出:

<div>
<h1> Science </h1>
</div>

但我得到了:

<div>
<h1> smush </h1>
</div>

提前感谢您的时间。

1 个答案:

答案 0 :(得分:3)

改变这个:

<h1> <%= :class %> </h1>

对此:

<h1> <%= class %> </h1>

注意取出结肠。传递给partial的局部变量是partial ... not符号中的变量。

另外..根本不要使用“类”。这是一个红宝石保留词,即使它确实有效,也令人困惑。这样做:

<%= render :partial => "/divbox", :locals => { :class_name => "Science" } %>


<div>
<h1> <%= class_name %> </h1>
</div>

或者如果你真的只想要“阶级”使用“klass”这是一个常见的替代...