2013-09-23 4 views
0

Когда пользователь создает новую учетную запись в своем приложении, я хочу перенаправить его на другой контроллер, скажем, контроллер настроек.После создания перенаправления на другой контроллер Редактировать

Но я не знаю, как сделать это, пользователь будет создан, но он не перенаправлять на новую страницу

Вот это создать из пользователя

def create 
    @user = User.new(params[:user]) 

    if params[:user][:newMusician] 
    @user.preference = Preference.new 
    if @user.save 
     sign_in @user 
     flash[:success] = "Welcome" 
     redirect_to "/preference/edit/" 
    else 
     render 'new' 
    end 
    end 
end 

Вот мой routes.rb

resources :users do 
    resources :preferences 

Просто добавьте, если отношение has_one, должен ли я все еще плюрализовать? Поскольку у каждого пользователя есть только одно предпочтение

Еще одно сомнение, мне просто нужно изменить действие в моих предпочтениях правильно?

Спасибо! (Rails 4 Ruby 2)

+0

Где находится '@ usuario'? Попробуйте изменить перенаправление на 'redirect_to @ user.preference' – kobaltz

+0

@kobaltz, что вы имеете в виду под« определенным »? Если я redirect_to user.preference, какое действие он будет использовать? Индекс Я верю, правильно? –

+0

Вы можете попробовать 'edit_users_preference_path (@user)' – kobaltz

ответ

0

В вашем терминале rake routes. Вы должны получить маршрут:

Путь (помощник) | Метод | URL | Контроллер # Действие

edit_user_preference | GET | users/:user_id/preferences/:id/edit | preferences#edit 

Prepend слово путь и передать переменные user_id и id к вспомогательному методу вместо "/preference/edit/":

edit_user_preference_path(@user.id, @preference.id)

Вам также нужно действие обновления для обновления записи ,

+0

Спасибо Cortex, страница перенаправляется сейчас, но я получаю неинициализированную константу PreferencesController –

+0

Исправлено что, но теперь я получаю «неопределенный метод' preference_path »... –

+0

Где вы получаете сообщение об ошибке? – cortex

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