我有一个多态关系如下:
class Profile
belongs_to :practice, polymorphic: :true
end
class ForeclosurePractice
has_one :profile, as: :practice
end
Run Code Online (Sandbox Code Playgroud)
我想根据我拥有的配置文件构建一个练习对象,但不幸的是实践返回零:
p = Profile.new
p.practice # => nil
Run Code Online (Sandbox Code Playgroud)
如何从 Profile 对象构建练习对象?
p.build_practice不起作用,因为build_other 方法不是为多态关联生成的。
如果您想要一种动态创建实例的方法,例如基于表单中选择的类名,您可以尝试使用safe_constantize - 简单的示例:
p.practice = params[:practice_type].safe_constantize.new
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4921 次 |
| 最近记录: |