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

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

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

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

共收到 5 条回复

你看看《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 回复

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

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