2009-03-03 78 views
12

我正在使用Single Table Inheritance並對所有子類都有註釋。我只對所有不同的STI類型使用1個控制器。當form_for助手爲子類型生成一個URL時,它會嘗試爲該子類型使用助手,但我希望它爲父類使用助手。我可以做STI並仍然使用多態路徑助手嗎?

這是錯誤我得到:

undefined method `subclasstypename_comments_path' for #<ActionView::Base:0x41ef27c> 

的路徑幫手它 '應該' 的使用是

parentclasstypename_comments_path 

回答

57

沒錯,只需使用AR::Base#becomes

假設您的基類是Account,它被分類到GuestAccountLoginAccount

@account.is_a? LoginAccount? #=> true 

然後,你可以做一個

form_for [@account.becomes(Account), @comment] do |f| 
    ... 
+0

形式與正確的路徑正確呈現,但沒有得到保存,當我提交表單 – lulalala 2012-05-28 06:47:03

相關問題