Так же, как заявление об отказе от ответственности, я новичок в рельсах и программировании в целом, поэтому извиняюсь за недопонимание чего-то очевидного.
У меня 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