Ruby on rails 3 无法使用AuthLogic登录

Ruby on rails 3 无法使用AuthLogic登录,ruby-on-rails-3,authlogic,Ruby On Rails 3,Authlogic,我试图使用authlogic,但显然我做错了什么。成功创建用户(在控制台中使用User.all进行验证)后,我将尝试登录,但最终失败。我做错了什么 还有,红宝石标记 UserSession.new(参数[:user\u session]) 错误,因为UserSession.new没有参数 这只是鲁比明的问题吗 这是我的模型代码 class用户100 错误。将_添加到_库('不能有超过100个用户') 终止 终止 终止 类UserSession 请登录 电邮: 暗语 我认为您创建的会话不正确。

我试图使用authlogic,但显然我做错了什么。成功创建用户(在控制台中使用User.all进行验证)后,我将尝试登录,但最终失败。我做错了什么

还有,红宝石标记 UserSession.new(参数[:user\u session]) 错误,因为UserSession.new没有参数 这只是鲁比明的问题吗

这是我的模型代码


class用户100
错误。将_添加到_库('不能有超过100个用户')
终止
终止
终止
类UserSession

这是我的控制器代码


class UserSessionController'new'
终止
终止
def销毁
当前用户会话。销毁
重定向到新用户会话路径
终止
终止

这是我的登录页面代码



“创建”do%>
请登录

电邮: 暗语


我认为您创建的会话不正确。我不是Authlogic大师,但我认为你是:

或者,您可以使用:


所有Authlogic构造函数似乎都在散列中使用命名参数(使用通常的Ruby自动散列),这可能就是RubyMine抱怨您的
UserSession的原因。new
调用的参数不正确。

您好,感谢您的回复;我认为params[:user_session]将与显式列出内容相同。让我先试试。RubyMine实际上是说构造函数接受零参数。我想我将忽略这一部分。@Max:Is
@user\u session.save
失败,还是在下一个请求中检索会话失败?@user\u session.save是failing@Max:如果您的表单使用了
:login
而不是
:email
,那么您应该能够使用
UserSession.new(params[:user\u session])
。你有没有把你现在做的和现在做的比较?
class User < ActiveRecord::Base
  acts_as_authentic do |config|
    config.login_field = :email
  end

  validate :cannot_exceed_100_users

  protected
  def cannot_exceed_100_users
    if User.count > 100
      errors.add_to_base('Cannot have more than 100 users.')
    end
  end
end


class UserSession < Authlogic::Session::Base
  def to_key
    [session_key]
  end
end
class UserSessionsController < ApplicationController
  def new
    @user_session = UserSession.new
  end

  def create
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      logger.info 'success'
      redirect_to games_path
    else
      logger.info 'failed'
      render :action=>'new'
    end
  end

  def destroy
    current_user_session.destroy
    redirect_to new_user_session_path
  end
end
<div>
  <%= form_tag :action=>'create' do %>
    <p>Please Log In</p>

    <div>
      <label for="email">Email:</label>
      <%= text_field_tag :email, params[:email] %>
    </div>

    <div>
      <label for="password">Password</label>
      <%= password_field_tag :password, params[:password] %>
    </div>

    <div>
      <%= submit_tag "Login" %>
    </div>
  <% end %>

  <%= link_to 'register', new_user_path %>
</div>
session = UserSession.new(:login => params[:email], :password => params[:password])
session.save
session = UserSession.create(:login => params[:email], :password => params[:password])