dashboard_controller
ユーザーが他のコントローラー用に 3 つのフォームを送信できるようにしようとしているところがあります。div
リンクをクリックしたときにフォームをロードするためにjQueryを使用しています。jQuery は問題なく動作し、クリックしたリンクに応じてフォームを表示できます。ただし、実際にフォームを送信すると、エラーが発生します。
undefined method `model_name' for NilClass:Class
dashboard_controller
アクションは次のとおりです。
class DashboardController < ApplicationController
def show
@message = Message.new
@image = Image.new
@link = Link.new
end
end
フォームを表示するために最初に読み込んでいるjQueryは次のとおりです。
$("#forms").html("#{j render :partial => "messages/form"}")
そして、リンクがクリックされたときに私が持っているjQueryは次のとおりです。
$("#add_image").live('click', function(){
$("#forms").html("#{j render :partial => "images/form"}")
})
そして、ここに私がクリックしてフォームをレンダリングするリンクがあります:
=link_to 'Image', "#", :class => "btn btn-info btn-medium inactive", :id => "add_image"
タブをクリックImage
すると、画像フォームが読み込まれます。しかし、そのフォームで送信をクリックすると、エラーがスローされます。誰かが説明して、それを修正する方法を理解するのを手伝ってもらえますか?
編集:これは機能していますが、深刻なハックのように感じます。作成アクションがある他のコントローラーでは、変数を新しいオブジェクトに割り当てるだけです。たとえば、新しいメッセージを作成しようとしている場合、create
アクションは次のmessages_controller
ようになります。
def create
@link = Link.new
@image = Image.new
@message = Message.new(params[:message])
...
end