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