Authlogic帮助!当用户不工作时当前登录时注册新用户

时间:2010-02-05 06:02:11

标签: ruby-on-rails authlogic

就像免责声明一样,我对滚动和编程一般都很陌生,所以对误解一些显而易见的东西道歉。

我已经启动并运行了Authlogic。因此,对于我的网站,我希望我登录的用户能够注册其他用户。新用户将通过激活电子邮件选择他们的登录名和密码,但现有用户需要通过电子邮件,位置和其他几个属性将其放入。我希望现有用户完成这项工作。

我遇到的问题,如果我登录然后尝试创建新用户,它只是尝试更新现有用户而不创建新用户。我不确定是否有办法通过另一个会话启动来解决这个问题?如果这是正确/可能的话,我不知道如何实施它。

我意识到在不完全了解我的应用程序的情况下可能很难回答这个问题,但这听起来像是正确的方法吗?我在这里错过了什么吗?

用户控制器:

class UsersController < ApplicationController
before_filter :require_no_user, :only => [:new, :create]
before_filter :require_user, :only => [:show, :edit, :update]

def new
  @user = User.new
end

def create
   @user = User.new

 if @user.signup!(params)
   @user.deliver_activation_instructions!
   flash[:notice] = "Your account has been created. Please check your e-mail for your account activation instructions!"
   redirect_to profile_url
 else
   render :action => :new
 end

end


def show
  @user = @current_user
end

def edit
 @user = @current_user
end

def update
  @user = @current_user # makes our views "cleaner" and more consistent
  if @user.update_attributes(params[:user])
    flash[:notice] = "Account updated!"
    redirect_to profile_url
   else
   render :action => :edit
   end
 end
end

我的User_Session控制器:

 class UserSessionsController < ApplicationController
   before_filter :require_no_user, :only => [:new, :create]
   before_filter :require_user, :only => :destroy

def new
  @user_session = UserSession.new
end

def create
  @user_session = UserSession.new(params[:user_session])
    if @user_session.save
    flash[:notice] = "Login successful!"
      if @user_session.user.position == 'Battalion Commander' : redirect_to battalion_path(@user_session.user.battalion_id)
      else
      end
    else
  render :action => :new
  end
end

 def destroy
  current_user_session.destroy
  flash[:notice] = "Logout successful!"
  redirect_back_or_default new_user_session_url
 end
end

2 个答案:

答案 0 :(得分:1)

您可以粘贴用户和users_session控制器代码吗?

我建议使用Ryan Bates的nifty_authentication宝石。您可以使用authologic而不是默认的restful_authentication with

script/generate nifty_authentication --authlogic

像魅力一样。

答案 1 :(得分:0)

我没有使用probs这样做,但是知道将自己移植到一种新语言和许多新库是多么困难!挂在那儿! :)

我认为可能是new上的 before_filter:require_no_user 和创建阻止你的。

这是什么意思?它是否渲染编辑视图?或者这是邮寄/投放的结果?

  

它只是尝试更新现有的   用户并且不会创建新的。

相关问题