为什么我们甚至需要在`new`方法中创建一个新的实例obj?

One*_*ero 1 ruby ruby-on-rails

  def new
    @post = Post.new
    ...
  end

  def create
    @post = Post.new(params[:post])
    ...
  end
Run Code Online (Sandbox Code Playgroud)

因为在create方法中,我们将通过我们提供的参数启动一个新的obj,为什么我们甚至需要@post = Post.newnew方法中?它没有意义,是吗?

Chr*_*ald 5

因为您的new视图需要一个Post对象来渲染表单.实例化一个新对象会为您的视图提供该对象以呈现表单.

  • 当你使用`form_for`时,Rails会从表单主题中推断出一堆东西,包括表单到POST或PUT的路径,字段的类型等等.如果你不需要使用空白的Post实例'我没有使用form_for,但它确实更清晰,因为它允许您在验证失败的情况下重复使用表单而无需额外的工作. (3认同)