2016-08-01 45 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)) 
相关问题