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

ruby_xiao · 2018年07月05日 · 最后由 ruby_xiao 回复于 2018年07月09日 · 1237 次阅读

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

ruby_xiao 回复

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

IChou 回复

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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号