2017-03-15 73 views
0

我有一個控制器操作:當信息輸入錯誤導致表單被重新呈現。重新呈現的頁面的路徑是什麼?

def create 
    @user = User.new(user_params) 
    if @user.save 
     log_in @user 
     flash[:success] = "You have successfully created your account" 
     redirect_to app_path 
    else 
     render 'new' 
    end 
end 

我也有一個側邊欄,不使用條件語句登錄頁上顯示...

<% if current_page?(login_path) 

<% else %> 
<%= render 'layouts/sidebar' %> 
<% end %> 

那工作正常...問題是,如果用戶輸入數據錯誤地登錄表單被重新渲染並顯示一條錯誤消息,然後出現側邊欄,當它不應該時。

任何想法將不勝感激。


回答

1

出現這種情況的原因是因爲當引發的錯誤它的渲染在你的控制器,這是不一樣的命名路線稱爲login_path相同的create行動。

相反,使用類似下面的代碼片段在您的視圖:

<% unless params[:controller] == 'sessions' %> 
    <%= render 'layouts/sidebar' %> 
<% end %> 

(明顯變化「會議」到控制器的名稱)。

+0

哈這是如此奇怪......我剛剛通過安裝調試轉儲發現問題......我看到了創建操作。不知道如何修復它,所以非常感謝你!我終於可以繼續前進了。 –

相關問題