在布局中使用devise sign_in视图

时间:2014-03-16 20:30:08

标签: ruby-on-rails-4 devise

我有2个布局

  1. applicattion.html.erb
  2. login.html.erb
  3. 我用设计。 在application_controller.rb中我写了这段代码:

      protect_from_forgery with: :exception
    
      layout :another_by_method
      private
      def another_by_method
        if user_signed_in?
          "application"
        else
          "login"
        end
      end
    

    通过此代码,如果用户不登录,请登录login.html.erb。 我想在login.html.erb中使用devise sign_in表单,但由于此代码,所有页面都是redirect_to login.html。 我也使用下面的代码,

    <%= render partial: "devise/sessions/new"%>
    

    但得到此错误:

    ActionView::MissingTemplate in Devise::Sessions#new
    

    任何想法?!

1 个答案:

答案 0 :(得分:0)

您正在尝试渲染部分内容,但devise/sessions/new不是部分内容。

无论如何,您是否使用rails generate devise:views生成了观看次数?如果是这样,你可以这样做:

= render file: 'devise/sessions/new'

使用file代替partial,但您需要Devise提供的所有变量,如resource,resource_name或devise_mapping。