Ruby on rails 是否可以从Rails表单管理多个不相关的模型?

Ruby on rails 是否可以从Rails表单管理多个不相关的模型?,ruby-on-rails,Ruby On Rails,如何从Rails表单管理多个不相关的模型 我应该只为所有型号配备一个控制器,还是为每个型号配备一个控制器 这是我的控制器: class WordsController < ApplicationController def new @word=Word.new @verb=Verb.new @adjektiv=Adjektiv.new @adverb=Adverb.new end def create

如何从Rails表单管理多个不相关的模型

我应该只为所有型号配备一个控制器,还是为每个型号配备一个控制器

这是我的控制器:

class WordsController < ApplicationController
  def new
         @word=Word.new
         @verb=Verb.new
         @adjektiv=Adjektiv.new
         @adverb=Adverb.new
  end
  def create
    @word=Word.create(params[:word])
    @verb=Verb.create(params[:verb])
    @adjektiv=Adjektiv.create(params[:adjektiv])
    @adverb=Adverb.create(params[:adverb])

    if @word.save || @verb.save || @adjektiv ||  @adverb
      redirect_to :action => 'index'
    else
      render :action => 'new'
    end
  end
  def index
        @word=Word.find(:all)
        @verb=Verb.find(:all)
        @adjektiv=Adjektiv.find(:all)
        @adverb =Adverb.find(:all)
  end
  def edit
        @word=Word.find(params[:id])
        @verb=Verb.find(params[:id])
        @adjektiv=Adjektiv.find(params[:id])
        @adverb =Adverb.find(params[:id])
  end
  def update
    @word =Word.find(params[:id])
    if @word.update_attributes(params[:word])  ||   @verb.update_attributes(params[:verb])  || @adjektiv.update_attributes(params[:adjektiv]) || @adverb.update_attributes(params[:adverb])
      redirect_to :action => 'index'
    else
      redirect_to :action => 'edit'
    end
  end
end

您可以从一个表单管理多个模型。但我认为,如果您想按照您所解释的那样去做,那么在应用程序体系结构中,use遗漏了一些东西。您不应该需要多个控制器-使用一个。例如:只需在new action中创建模型的新实例,在create action中验证并保存它们。编辑/更新操作也是如此。
我认为您也应该使用form_标记而不是form_,因为没有父模型可处理。

谢谢,但在编辑过程中出现了另一个问题。当我试图编辑表A中的记录3时,其他表中的所有记录3都会显示给我。我如何避免这种情况?你可以在最新的帖子中看到我的编辑功能。对不起?但我不明白你说的“其他表格的所有记录3都显示给我”是什么意思。他们肯定会的。因为你正在编辑它们。我认为你应该改变你的申请行为。也许你应该在不同的控制器和不同的视图中创建/更新模型。这正是我的问题。我有三张表,一个词代表南门,一个副词代表副词,形容词的Adjektiv和副词的副词当然在我的scnariorst中不是最优的,表格之间没有关系。我有一个表单,用户可以添加副词或形容词,或者…我使用手风琴,每个表单在手风琴中都有一个选项卡,我想让用户可以编辑该页面中的一条记录…你是什么意思?我可以实现我的scnario吗?您还可以看到:而且……这意味着,没有解决方案将所有选项卡都放在一个表单中,并且只有一条记录发送到一个选项卡具有相同id的记录不会发送到每个选项卡?考虑到控制器的外观,您应该使用多个表单。看起来你一次只做一个?在编辑时,您可以通过相同的id找到4个不同的模型?在创建时,如果有保存,则重定向到索引?很明显,您希望对它们进行独立操作。为每个资源使用控制器和表单。这意味着我不能在一个表单中执行此操作?根据您在下面发布的图像,似乎您实际上需要多个表单,每个手风琴选项卡上都有一个表单。我的问题的答案是:否