Nat*_*han 0 layout templates ruby-on-rails
我试图在用户登录时将布局设置为"私有".如果我可以执行以下操作,那将是完美的:
layout 'private' if current_user
Run Code Online (Sandbox Code Playgroud)
除了它给出了这个错误:
undefined local variable or method `current_user' for ApplicationController:Class
Run Code Online (Sandbox Code Playgroud)
我也尝试在应用程序控制器中执行此操作:
before_filter :pick_the_layout
def pick_the_layout
if current_user
render :layout => "private"
else
render :layout => "public"
end
end
Run Code Online (Sandbox Code Playgroud)
这也没有运气,这是有道理的.谁能想到更好的方法来做到这一点?
don*_*ngg 13
你可以这样做:
layout :determine_layout
private
def determine_layout
current_user ? "private" : "public"
end
Run Code Online (Sandbox Code Playgroud)
显然,这取决于current_user是nil或者false如果用户没有登录.
您可以在layout此处查看有关用法的文档:
http://api.rubyonrails.org/classes/AbstractController/Layouts/ClassMethods.html#method-i-layout
这里有更多例子:
http://api.rubyonrails.org/classes/AbstractController/Layouts.html
| 归档时间: |
|
| 查看次数: |
3037 次 |
| 最近记录: |