Справка Authlogic! Регистрация нового пользователя при входе в систему как пользователь, не работающий - PullRequest
3 голосов
/ 05 февраля 2010

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

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

Ответы [ 2 ]

1 голос
/ 05 февраля 2010

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

Я предлагаю использовать Ryan Bates '1003 * nifty_authentication gem. Вы можете использовать authologic вместо по умолчанию restful_authentication с

script/generate nifty_authentication --authlogic

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

0 голосов
/ 18 апреля 2010

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

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

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

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

...