Rails 4不会渲染我的布局

时间:2016-06-09 09:21:42

标签: ruby-on-rails ruby ruby-on-rails-4

我目前对Rails 4中的Layouts感到头疼,截至目前,我为我的控制器创建了一个布局,并使用layout "layout_name"

在我的控制器中成功调用它

但问题是,每当我重定向到该控制器时,它只会呈现页面本身而不是它上面的布局。

这是我的代码片段:

class LoginController < ApplicationController
  layout "login_layout"
  def index
    user = User.new
  end

  def login_user
    validate_credential = User.login(params[:user])
    if validate_credential[0] == true
      session[:user_firstname] = validate_credential[1][0]["firstname"].capitalize
      session[:user_lastname] = validate_credential[1][0]["lastname"].capitalize
      session[:user_id] = validate_credential[1][0]["id"]
      session[:advisory_class] = validate_credential[1][0]["advisory_class"].capitalize
      redirect_to :controller=> 'dashboard', :action=> 'home'
    else
      redirect_to :action=>'index'
    end
  end

不要在我的login_user函数中使用redirect_to来渲染布局。

这是我的注销代码(来自另一个控制器)

class DashboardController < ApplicationController
  layout 'dashboard_layout'
  def home
  end

  def settings
  end

  def students
  end

  def logout
    session.clear
    redirect_to :controller=>'login',:action=>'index'
  end

它呈现页面本身,但不包括该控制器的布局。

我搜索了很多解决方案,但仍然没有希望。

这是从我的仪表板控制器调用(redirect_to)时root_path的样子图。

enter image description here

这必须是我的root_path的设计。 (包括布局)。 请注意,URL是相同的,但未呈现布局。但是当我刷新页面时,它会显示布局。

enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了刺,它是Turbolinks。我删除了我的application.js和gem文件中的turbolinks,它就像一个魅力。布局不会更改,因为正在调用的特定布局的CSS不会更改。当应用程序重定向到登录控制器时,css必须是login.self?etc.etc。但它仍然是仪表板的CSS。