最初我有一个 form_for(@thing) 对应create
于我的 ThingsController 中的操作。有效。然后,我决定将表单移动到它通常的位置,/things/new.html.erb
然后表单停止渲染。它给出了这个错误:
undefined method `model_name' for NilClass:Class
所以我加入@thing = Thing.new
了这个new
动作,一切都很好。@thing
但请注意——当表单位于另一个控制器视图的其他位置时,我不必实例化。
这让我想知道为什么 Rails 会做出看似武断的决定,要求在一个地方而不是另一个地方实例化。任何Rails-heads都有答案吗?