2011-09-02 73 views
1

我有三个管理这些模型的模型(单词,Adjectiv,副词)和一个控制器(单词)。我只有一个表单,该用户可以添加一个副词,一个Adjectiv或一个字。 我的编辑功能:关于编辑多个模型和一个控制器的问题

def edit 
     @word=Word.find(params[:id]) 
     @adjektiv=Adjektiv.find(params[:id]) 
     @adverb =Adverb.find(params[:id]) 
    end 

例如,当我想编辑副词的一个记录(ID = 1)ADJECTIV和Word与ID的另一个纪录= 1出现在Textboxes.I想只在观看第一个副词记录 我该怎么做? 谢谢

+0

难道你不知道用户介绍什么(词,adjektiv或副词?)吗? – cicloon

+0

我使用阿贾克斯手风琴和每一个(单词,adjectiv,副词)有自己的标签 –

回答

3

这看起来像使用STI(单表继承)的理想情况,因为主语和副词也是单词。为了达到这个目标,你需要一个名为type的字符串字段在你的单词表中。然后,你可以做这样的:

def Word < ActiveRecord::Base 
end 

def Adjektiv < Word 
end 

def Adverb < Word 
end 

然后在你的控制器:

def edit 
    @word=Word.find(params[:id]) 
end 
+0

谢谢你的答案。我没有选择我的桌子最好的名字。这些表都没有任何realation.would你请告诉我,我如何解决我的Scnario中的这个问题? –

1

如果只有一个用户的形式,但多个模型,这意味着你在多个型号单一关联控制器。因此,建议采用嵌套模型表格的方法。

请在Nest Form-Model上关注Ryan Bates的excellent railscast

该链接适用于railscast的第1部分,您可以在同一网站上找到后续的railscast。

该方法将使您的代码更清洁,更高效,更易于维护。

谢谢。

相关问题