【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 2018-07-07
      • 2015-05-15
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多