【问题标题】:undefined method session_path when using devise使用设计时未定义的方法 session_path
【发布时间】:2014-12-22 15:18:40
【问题描述】:

当我将设计与我的自定义控制器和视图一起使用时,我收到了undefined method 'session_path' for #<#<Class:0x9859218>:0x8ebcbd0>,任何人都可以阐明我做错了什么吗?

路线:

devise_for :users, :skip => [:sessions]
  as :user do
  get 'account/login' => 'account#login', :as => :new_user_session
  post 'account/login' => 'account#login_user', :as => :user_session
  delete 'account/logout' => 'account#logout', :as => :destroy_user_session
end

控制器:

AccountController < Devise::SessionsController
  def login
  self.resource = resource_class.new(sign_in_params)
  clean_up_passwords(resource)
  respond_with(resource, serialize_options(resource))
end

def login_user
  self.resource = warden.authenticate!(auth_options)
  set_flash_message(:notice, :signed_in) if is_flashing_format?
  sign_in(resource_name, resource)
  yield resource if block_given?
  respond_with resource, location: after_sign_in_path_for(resource)
end

def logout
  signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
  set_flash_message :notice, :signed_out if signed_out && is_flashing_format?
  yield if block_given?
  respond_to_on_destroy
end

查看:

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
  <ul>
    <li>
      <%= f.label :login, "Email", :class => labels %>
      <%= f.email_field :login, :autofocus => true, :class => "wideinput" %>
    </li>
    <li>
      <%= f.label :password, :class => "labels" %>
      <%= f.password_field :password, :autocomplete => "off" %>
    </li>
    <li class='button'>
      <%= submit_tag "Login", :class => "btn1" %>
    </li>
  </ul>
<% end %>

【问题讨论】:

  • 如您的路线所示,您在发布登录表单时需要使用user_session_path进行登录

标签: ruby ruby-on-rails-3 devise


【解决方案1】:

尝试改变这一行

post 'account/login' => 'account#login_user', :as => :user_session

post 'account/login' => 'account#login_user', :as => :session

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    相关资源
    最近更新 更多