2016-08-01 75 views
0

我在創建行動以下行:如何在使用STI時使用Rails的.build_方法實例化子對象?

@financial_goal = current_user.send("build_#{type.underscore}",financial_goal_params) 
我在與沒有被定義的構建方法麻煩

,因爲我沒有做過:HAS_ONE我的用戶模型爲我所有的STI子類。

正如我解釋,我想我來兩個選擇:

A)直接從子類實例化對象,並使用build_然後只需追加user_id: current_user.id

B略)添加所有子類爲has_one,在我的user.rb下,但是這聽起來很可怕,因爲每次我創建新的子類時,我都必須添加關聯。

看起來像選項A它是?

回答

0

爲了保持東西在動,我認爲最合理的方式是躲閃build_方法,只是這一走:

@financial_goal = klass.new(financial_goal_params.merge(user_id: current_user.id)) 
相關問題