2014-02-20 2 views
0

Итак, после того, как пользователь подписался, я перенаправляю их на свою дополнительную информационную страницу, где я собираю дополнительную информацию. Однако, что-то не так с моей конструкцией/реализацией, как рельсы говорят им-отсутствующие пользователи/создать шаблонперенаправление с другой страницы с информацией

это мой контроллер пользователей

class UsersController < ApplicationController 

    def show 
     @user = User.find(params[:id]) 
    end 

    def new 
     @user = User.new 
    end 


    def additional_info 
     @user = User.new(user_addinfo) 
     if @user.save 
     redirect_to show_path 
     end 
    end 


    def create 
    @user = User.new(user_params) 
    if @user.save 
    # UserMailer.welcome_email(@user).deliver 
     sign_in @user 
     redirect_to additional_info_path 
     flash[:success] = "Welcome to InYourShoes!" 
     #return @user 
    else 
     render'new' 
    end 
    end 

    private 

     def user_params 
     params.require(:user).permit(:name, :email, :password, :password_confirmation) 
     end 


     def user_addinfo 
     params.permit(:year) 
     end 
    end 

четкость шоу страница профиля пользователя я хочу показать после перенаправления additional_info страницы

Защита additional_info просто взять дополнительную информацию от частного метода Защиты user_addinfo

Защиты создать процесс регистрации.

После ввода основной информации о пользователе он перенаправляется на дополнительное, что прекрасно. но после дополнительного, он говорит, что им не хватает шаблона пользователей/создания, но мой код я попытался перенаправить на show_path и #usersshow, все еще не работает

любые предложения? извините, если это кажется интуитивным, но Im новым для рельсов.

+0

, что вы делаете не так ясно, но я думаю, что проблема заключается в методе ADDITIONAL_INFO, потому что вы создаете бренд новый пользователь с только параметрами в user_addinfo, без создания сеанса ... что вы используете для управления сеансами для аутентификации пользователей? – sissy

+0

У меня есть контроллер сеансов, который обрабатывает это, я понял, что sign_in itsef является сеансом? – user2691652

ответ

0

Я думаю, что ваша проблема заключается в дополнительном_инфо-методе, как я сказал в комментарии. То, что вы делаете:

  • создание пользователя
  • создания сеанса для пользователя (sign_in @user) - хранение где-то user_id в сессии
  • перенаправляет на страницу ADDITIONAL_INFO И здесь приходит проблема. Поскольку пользователь уже зарегистрирован, вам не нужно создавать нового пользователя с дополнительными параметрами. У вас должен быть помощник для получения текущего подписанного пользователя (например, current_user) и метода add_info, просто обновите его.

Таким образом, ваш метод ADDITIONAL_INFO стал бы что-то вроде:

def additional_info 
    user = User.find session[:user_id] 
    user.update params[:user] 
    redirect_to user_path #show action 
end 
+0

где я должен определить помощника? это метод, который я должен определить в моем контроллере сеанса? – user2691652

+0

Мне жаль, что я написал неправильно, я собираюсь отредактировать свой ответ. нет необходимости в помощнике – sissy

+0

получать эту ошибку ActiveRecord :: RecordNotFound в UsersController # ADDITIONAL_INFO Не удалось найти пользователя без ID fromt этой линии: пользователя = User.find сессии [: user_id] – user2691652

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