1
嘿傢伙我有一個簡單的創建方法與一些驗證和每當創建方法由於驗證錯誤失敗它重新呈現'新'行動。Ruby on Rails創建方法失敗時,呈現丟失局部變量
問題是在我的新行動/視圖我有一個局部變量,在行動中建立並傳遞給部分呈現一些相關的信息,以用戶正在創建。
現在,當我創建行動失敗,我嘗試重新呈現「新」的行動,我發現了總是真棒
undefined method `cover' for nil:NilClass
錯誤。
什麼是最好的方式來處理在渲染中重建我的動作的局部變量,而不是再次重定向到動作和用戶失去他們輸入的數據?
對於一些澄清。下面是一些示例代碼:
#controller.rb
def new
@summary = User.find(params[:user_id])
@page = Page.new
end
def create
@page = Page.new(params[:page])
if @page.save
redirect_to @page
else
render :action => 'new'
end
end
我new.html.erb文件
我有這樣的事情
<%= @summary.cover %>
#page form etc...
有問題的對象實際上是與創建對象不同的對象。 – Jimmy 2010-06-16 18:23:46
這導致我正確的答案,我剛剛在我的創建方法中初始化對象,它很好地轉移,謝謝! – Jimmy 2010-06-16 18:28:45