如何在rails控制器中调用多个布局

时间:2013-06-18 07:46:27

标签: ruby-on-rails

class UserSignupController < ApplicationController

  layout "signup", only: [:signup]
  layout "user_sessions", only: [:thanks]

  def signup
  end

  def thanks
  end
end

我有两种不同的布局。我想为注册调用注册布局。它可以正常工作。但是当我给出两个布局时,它会崩溃我的代码。可以这样给出吗?

2 个答案:

答案 0 :(得分:2)

如果要使用单独的操作,可以在每个操作中指定布局。例如,

def signup
    render "signup", layout: "signup"
end

def thanks
    render "thanks", layout: "thanks"
end

应该这样做:)

答案 1 :(得分:0)

您可以添加一个方法来设置布局并置于私有。

class UserSignupController < ApplicationController
  layout :specific_layout

  def signup
  end

  def thanks
  end

  private

  def specific_layout
    case action_name
    when "signup"
      "signup"
    when "thanks"
      "user_sessions"
    else
      "otherlayout"
    end
  end
end