在Ruby on Rails中路由到特定视图

时间:2015-08-23 02:25:42

标签: ruby-on-rails routes ruby-on-rails-4.2

我正在学习Ruby on Rails。我有一个登录页面,其布局与网站的其他部分完全不同。在我的routes.rb中,如何告诉应用程序始终使用" login"来呈现此特定页面。查看而不是默认的"应用程序"查看?

2 个答案:

答案 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