我正在学习Ruby on Rails。我有一个登录页面,其布局与网站的其他部分完全不同。在我的routes.rb中,如何告诉应用程序始终使用" login"来呈现此特定页面。查看而不是默认的"应用程序"查看?
答案 0 :(得分:3)
在Rails 4中,您可以使用:render layout: 'some_layout'
呈现特定的布局。
在控制器的login
方法中,您可以使用以下内容:
def login
# do stuff
if some_condition
# do stuff
render layout: 'some_condition_layout'
else
# do other stuff
render layout: 'some_other_layout'
end
end
有关渲染和布局的更多信息,您可以查看Layouts and Rendering in Rails
答案 1 :(得分:0)
您可以按answer above为每个操作调用渲染布局,或者您可以执行以下操作dynamically set the layout name depending on the action name::
class PagesController < ApplicationController
layout :resolve_layout
def index
end
def home
end
def dashboard
end
private
def resolve_layout
case action_name
when "home" #action name
"home" #layout name
when "dashboard"
"dashboard"
else
"application"
end
end
end