create
もともと、ThingsController のアクションに対応する form_for(@thing) がありました。出来た。次に、フォームを通常の場所に移動することにしましたが、/things/new.html.erb
フォームのレンダリングが停止しました。このエラーが発生しました:
undefined method `model_name' for NilClass:Class
だから私はアクションに追加@thing = Thing.new
しました、そしてすべてがうまくいきました. ただし、フォームが別のコントローラーのビューの別の場所にある場合、new
インスタンス化する必要はありませんでした。@thing
Rails が、ある場所ではインスタンス化を要求し、別の場所ではインスタンス化を要求しないという一見恣意的な決定を下すのはなぜだろうか。誰でも Rails-heads に答えがありますか?