ruby-on-rails - Rails - has_one 与两个可能模型之一的关联

标签 ruby-on-rails

关于 Rails 关联的问题,其中 has_one 关联与两个可能的模型之一相关。就像多态关联一样,但反过来。

所以我有两种不同类型的银行账户,都属于UserConfig:

class SwedishBankAccount
  belongs_to :user_config
end

class ForeignBankAccount
  belongs_to :user_config
end

问题是如何在我的UserConfig中管理它。它应该与 SwedishBankAccountForeignBankAccount 关联,但不能同时与两者关联。

最佳答案

您可以使用多态关系。在 UserConfig 模型中添加 target_idtarget_type

class UserConfig < ActiveRecord::Base
  belongs_to :target, :polymorphic => true
end

然后您只需使用模型 SwedishBankAccount As

class SwedishBankAccount < ActiveRecord::Base
  has_one :user_config, :as => :target
end

在模型ForeignBankAccount中为

class ForeignBankAccount < ActiveRecord::Base
  has_one :user_config, :as => :target
end

关于ruby-on-rails - Rails - has_one 与两个可能模型之一的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36172620/

相关文章:

sql - Rails 通过 JSON 属性搜索

javascript - 在 ROR 中加载 AJAX 后,如何使页面跳转到顶部?

ruby-on-rails - 从 Ruby 的角度来看,edit_post_path 是什么

ruby-on-rails - 找不到“twitter/bootstrap/responsive.less”

ruby-on-rails - 忽略事件记录 Rails 4 中为空的参数

ruby-on-rails - 如何在 Rails 中创建用户可自定义的数据库(如 Zoho creator)?

ruby-on-rails - 使用 Kaminari 分页跳转到中间

javascript - 在 Rails 中提供静态 JSON 对象文件

ruby-on-rails - Git 在 Rails 项目上忽略了我的 .gitignore

ruby-on-rails - 如何在 Ruby 中找到周末的日期?