Authlogic Help! Регистрация нового пользователя при входе в систему как неработающий пользователь

Так же, как отказ от ответственности, я новичок в rails и программировании в целом, поэтому извиняюсь за недопонимание чего-то очевидного.

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

person looloobs    schedule 05.02.2010    source источник


Ответы (2)


Не могли бы вы вставить код своих пользователей и контроллеров users_session?

Я предлагаю использовать драгоценный камень nifty_authentication Райана Бейтса. Вы можете использовать authologic вместо restful_authentication по умолчанию с

script/generate nifty_authentication --authlogic

Работает как шарм.

person sent-hil    schedule 05.02.2010
comment
Спасибо, отредактировал свой пост с кодом. Nify_authentication выглядит как отличный драгоценный камень, который я хотел бы использовать в будущем, но я думаю, что он просто выполняет то, что у меня уже есть. Я могу зарегистрировать пользователя и войти в него нормально. Однако то, что я пытаюсь сделать, - это зарегистрировать ДРУГОГО пользователя, когда один пользователь вошел в систему. Это не может создать этого второго пользователя, потому что он просто хочет обновить того, который в настоящее время вошел в систему. - person looloobs; 05.02.2010
comment
Я действительно не вижу смысла позволять пользователям регистрировать других. Это слишком сложно для очень небольшого выигрыша. Одна вещь, о которой я могу думать, - это создание приглашений, которые пользователи могут отправлять другим пользователям. Этот метод не позволяет текущему пользователю выбрать имя пользователя и передать его, но я полагаю, что людям не нравится имя пользователя, и передача уже выбрана для них. - person sent-hil; 05.02.2010
comment
Да, я тоже подумал о маршруте приглашения, я определенно не собираюсь позволять кому-либо выбирать имя пользователя или пароль, это делается в части активации. Мне нужно иметь возможность для человека, который является пользователем, помещать других пользователей в их указанную группу и по должности, эти критерии должны быть введены этим существующим пользователем. Я понимаю, что мне, вероятно, также нужно изучить роли, но, похоже, это не решает мою проблему добавления еще одного пользователя, когда один вошел в систему. Спасибо. - person looloobs; 06.02.2010
comment
Я думаю, ты неправильно смотришь на это. Я думаю, вы хотите, чтобы пользователь выбрал пользователя и поместил его / ее в определенную группу? Просто создайте контроллер групп и позвольте пользователям добавлять / удалять членов из этой группы. Для этого вам не нужно находиться где-либо рядом с контроллером пользователей / сессий. - person sent-hil; 06.02.2010

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

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

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

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

person oma    schedule 18.04.2010