2010-02-05 70 views
3

就像一個免責聲明,我是一個新的軌道和編程的一般,所以道歉誤解明顯的東西。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 

回答

1

你能粘貼您的用戶和users_session控制器代碼?

我建議使用瑞安貝茨'nifty_authentication寶石。您可以使用authologic代替默認的restful_authentication與

script/generate nifty_authentication --authlogic 

工程就像一個魅力。

+0

謝謝,我用代碼編輯了我的帖子。 nify_authentication看起來像是我將來使用的一個偉大的寶石,但我認爲它只是做我已經運行的東西。我可以註冊一個用戶並將他們記錄下來。然而,我想要做的是在一個用戶登錄時註冊ANOTHER用戶。由於它只是想更新當前登錄的用戶,因此無法創建第二個用戶。 – looloobs 2010-02-05 16:10:29

+0

我真的沒有看到讓出用戶註冊其他人。這太複雜了,收益很小。我能想到的一件事就是創建用戶可以發送給其他用戶的邀請。這種方法不會讓當前用戶選擇用戶名和通過,但我想人們不喜歡用戶名和通行證已經爲他們選擇。 – 2010-02-05 20:02:26

+0

是的,我也想過邀請路線,我沒有打算讓其他人選擇用戶名或密碼,這是在激活部分完成的。我需要能夠讓一個用戶的用戶將其他用戶放入他們指定的組中並按位置放置,這些標準必須由該現有用戶放入。我意識到我可能需要查看角色,但這似乎並不能解決我在登錄時添加其他用戶的問題。謝謝。 – looloobs 2010-02-05 22:18:12

0

我已經完成了這個沒有probs,但知道如何將自己移植到一種新的語言和許多新的圖書館!掛在那裏! :)

我認爲它可能是before_filter:require_no_user在新的和創建該塊你。

這是什麼意思?它是否呈現編輯視圖?或者這是一個帖子/放的結果?

它只是試圖更新現有的 用戶,並沒有創建一個新的。

相關問題