新手问题 form_for 辅助方法的第一个参数是指一个对象,这个对象是之前创建好的,还是新建的一个对象指代新建的表单?

ruby_xiao · July 05, 2018 · Last by ruby_xiao replied at July 09, 2018 · 1231 hits

form_for 辅助方法的第一个参数是指一个对象,这个对象是之前创建好的,还是新建的一个对象指代新建的表单?

比如《Rails 入门》中 5.2 节<%= form_for :article do |f| %> 中的这个:article 是新建的一个对象变量指代将要新建的表单么?

你看看《Rails 入门》后续的 5.11 节

如果传入和实例变量(@article)同名的符号(:article),也会自动产生相同效果

所以

form_for :article

等同于

form_for @article

感谢回复 我想问的是,这个@article对象是什么时候创建,因为之前创建 articles 资源和控制器的时候都没有创建过 单数 的这个 article 对象,所以不太理解这个从哪来的😅

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

你的所有疑问都写在文档里

简单的说,传 symbol 或者 string 就相当于 Rails 自己帮你执行了 Article.new

Reply to ruby_xiao

那是你没仔细看吧,没创建@article表单不会报错的吗

Reply to IChou

是的,看了文档,感觉是这样的👍

You need to Sign in before reply, if you don't have an account, please Sign up first.