2010-02-05 2 views
3

Так же, как отказ от ответственности Я новичок в рельсах и программировании в целом, поэтому приношу свои извинения за недопонимание чего-то очевидного.Authlogic Help! Регистрация нового пользователя при входе в систему как пользователь, не работающий

У меня есть 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 вместо default restful_authentication с

script/generate nifty_authentication --authlogic 

Работает как очарование.

+0

Спасибо, я отредактировал мое сообщение с кодом. Nify_authentication выглядит как великолепный камень, который я хотел бы использовать в будущем, но я думаю, что он просто делает то, что у меня уже есть. Я могу зарегистрировать пользователя и зарегистрировать их в порядке. Однако то, что я пытаюсь сделать, это зарегистрировать ДРУГОЙ пользователь, когда один пользователь вошел в систему. Это не позволяет создать этого второго пользователя, потому что он просто хочет обновить тот, который в настоящее время зарегистрирован. – looloobs

+0

Я действительно не вижу смысла сдавать пользователи регистрируют другие. Это слишком сложно для очень небольшого выигрыша. Одна вещь, о которой я могу думать, это создавать приглашения, которые пользователи могут отправлять другим пользователям. Этот метод не позволяет текущему пользователю выбирать имя пользователя и передавать его, но я думаю, что люди не любят имя пользователя и уже выбрали для них. –

+0

Да, я тоже думал о маршруте приглашения, я не намерен позволять кому-либо еще выбирать имя пользователя или пароль, что делается в части активации. Мне нужно, чтобы у человека, который является пользователем, чтобы добавить других пользователей в указанную группу и по положению, эти критерии должны быть введены этим существующим пользователем.Я понимаю, что мне, вероятно, тоже нужно заглядывать в роли, но это, похоже, не решает мою проблему добавления другого пользователя во время входа. Спасибо. – looloobs

0

Я делал это без проблем, но знаю, как трудно переносить себя на новый язык и много новых библиотек! Повесить там! :)

Я думаю, что это может быть before_filter: require_no_user на новом и создать, что блокирует вас.

Что вы имеете в виду? Отображает ли это вид редактирования? Или это результат сообщения/поста?

он просто пытается обновить существующего пользователя и не создает новый.

 Смежные вопросы

  • Нет связанных вопросов^_^