2011-09-02 47 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。

該方法將使您的代碼更清潔,更高效,更易於維護。

謝謝。

相關問題