2013-09-23 40 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。你應該得到如下路線:

Path(Helper)|方法| URL |控制器#動作

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

前加字路徑,並通過變量user_idid的輔助方法,而不是"/preference/edit/"

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

您還需要更新操作要更新的記錄。

+0

感謝Cortex,頁面現在重定向,但我收到一個未初始化的常量PreferencesController –

+0

固定那,但現在我收到一個「未定義的方法'preference_path'」... –

+0

你在哪裏得到錯誤? – cortex

相關問題