【问题标题】:Routes to Specific View in Ruby on RailsRuby on Rails 中特定视图的路由
【发布时间】:2015-08-23 02:25:42
【问题描述】:
我正在学习 Ruby on Rails。我有一个登录页面,其布局与站点的其余部分完全不同。在我的 routes.rb 中,如何告诉应用程序始终使用“登录”视图而不是默认的“应用程序”视图来呈现这个特定页面?
【问题讨论】:
标签:
ruby-on-rails
routes
ruby-on-rails-4.2
【解决方案1】:
在 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
【解决方案2】:
您可以根据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