ruby-on-rails - 授权逻辑帮助!当前登录为不工作的用户时注册新用户

标签 ruby-on-rails authlogic

就像免责声明一样,我对 Rails 和一般编程很陌生,所以对于误解一些明显的事情深表歉意。

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

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

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

用户 Controller :

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 Controller :
 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

最佳答案

您可以粘贴您的用户和 users_session Controller 代码吗?

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

script/generate nifty_authentication --authlogic

奇迹般有效。

关于ruby-on-rails - 授权逻辑帮助!当前登录为不工作的用户时注册新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2205329/

相关文章:

ruby-on-rails - 使用 Authlogic 仅使用用户名进行身份验证

ruby-on-rails - 多态关联的 Rails_admin 配置

ruby-on-rails - SELECT DISTINCT 的 PG 错误,尝试在 Heroku 上查看时,ORDER BY 表达式必须出现在选择列表中

ruby-on-rails - Rails 与同一模型的多个 Has_one 关系

ruby-on-rails - 带有 Authlogic 和调用 reset_session 的 Rails 3

ruby-on-rails - 简单的 Authlogic 问题 : JSON login?

ruby-on-rails - 如何找到所有使用 sudo gem install 安装的 ruby​​ gem?

ruby-on-rails - RSpec 如何测试传递给方法的参数数据类型

ruby-on-rails - ApplicationController 中的 Authlogic、Namespace 和私有(private)方法

ruby-on-rails - Ruby on Rails Authlogic 密码无效