1

我有一个dashboard_controller我试图允许用户为其他控制器提交三个表单的地方。div当我单击链接时,我正在使用 jQuery 将表单加载到 a中。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
4

0 回答 0