如何将参数从控制器传递到模板?

fre*_*ght 6 ruby-on-rails

似乎在控制器的操作(方法)中设置多个实例变量会导致模板出现问题,只有第一个实例变量才会传递给模板.有没有办法将多个变量传递给模板?谢谢!为什么,从Ruby的角度来看,模板是否可以访问动作中的实例变量?

EmF*_*mFi 4

您可能还想查看渲染的 :locals 选项。它接受哈希值,键是映射到模板中局部变量名称的符号,值是将这些局部变量设置为的值。

例子:

render "show", :locals => {:user => User.first, :some_other_variable => "Value"}
Run Code Online (Sandbox Code Playgroud)

和这个模板

User ID: <%= user.id %><br>
Some Other Variable: <%=some_other_variable%>
Run Code Online (Sandbox Code Playgroud)

将产生:

User ID: 1<br>
Some Other Variable: Value
Run Code Online (Sandbox Code Playgroud)

当您跨多个控制器重用部分时。使用 :locals 选项设置局部变量比使用实例变量更简单、更干燥。