def new
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @post }
end
end
def create
@post = Post.new(params[:post])
#something else
end
在这里,因为当我们实际创建一个新帖子时,我们调用方法create使用Page.new(params [:page]),方法new只能用于调用视图new.html.erb。那么为什么我们仍然需要在这里的新方法中使用实例变量@post?为什么我们需要新的实例变量?
使用'form_for'产生依赖于对象的形式,因此对于新的行动,它只是造成了空白表格空对象,但你可以重复使用形式的编辑操作和加载现有的Post对象,它会再加载相关领域到表单 – xkickflip 2013-04-07 20:39:21
由于我们已经依赖于形式的对象,为什么我们需要在再次使用Page.new创建方法? – ZeroNegOne 2013-04-07 20:43:48
“创建”操作的处理程序与调用“new”操作的处理程序完全不同。每个HTTP请求都会触发一个全新的Rails调用,它与其他每个HTTP请求都是隔离的。你设置的实例变量最初不再存在 - 你只是有一个新的请求对象,你必须再次处理参数 – Gareth 2013-04-07 20:48:35