我有如下多态关系:
class Profile
belongs_to :practice, polymorphic: :true
end
class ForeclosurePractice
has_one :profile, as: :practice
end
我想根据我的个人资料构建一个练习对象,但遗憾的是练习返回nil:
p = Profile.new
p.practice # => nil
如何从Profile对象构建练习对象?
答案 0 :(得分:2)
p.build_practice
无法工作,因为build_other method is not generated for polymorphic associations。
如果您想要一种动态创建实例的方法,例如根据表单中选择的类名,您可以尝试使用save_constantize - 简单示例:
p.practice = params[:practice_type].safe_constantize.new
答案 1 :(得分:0)
您需要明确构建关联:
p = Profile.new
p.build_practice
请参阅:http://apidock.com/rails/v4.0.2/ActiveRecord/Associations/ClassMethods/belongs_to