我有很多通过方法参数接收参数的操作:
class App < E
map '/'
def read page
@page = page
# etc.
render
end
def profile user
@user = user
# etc.
render
end
end
我如何在不将它们分配给实例变量的情况下访问模板page
中的等?user
我有很多通过方法参数接收参数的操作:
class App < E
map '/'
def read page
@page = page
# etc.
render
end
def profile user
@user = user
# etc.
render
end
end
我如何在不将它们分配给实例变量的情况下访问模板page
中的等?user
您在这里至少有 2 个选项。
最直接的一种是使用action_params
:
def read page
# use action_params[:page] in templates
end
请注意这仅适用于 Ruby 1.9
在 Ruby 1.8 中使用action_params[0]
另一种方法是将参数作为上下文变量传递:
def profile user
render :user => user
# in templates, user is available as #user getter
# rather than @user instance variable
end
查看源代码,如果您将哈希传递给渲染函数,它会将这些键作为局部变量分配给视图。就像是
render(:foo => "Bar")
在行动中,然后在你可以做的视图中
<%= foo %>
这将呈现
Bar