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