在Ruby on Rails中只有一个模型时,将记录添加到多个表中?

时间:2011-06-28 23:42:44

标签: mysql ruby-on-rails database ruby-on-rails-3

我有三个模型clientsclient_categoriesclients_category_merge。 我想将clients_idclient_categories_id存储到clients_category_merge表中,因为单个客户端可以有多个客户端类别。

如果我在提交表单时只有一个模型(clients),如何将记录添加到2个表(clients_category_mergeclients)?

我确信有一个很好的方法可以做到这一点。但是我对Rails很陌生并且在这个上失败了。

1 个答案:

答案 0 :(得分:0)

has_many :through关联将为您添加适当的记录。

class Client < ActiveRecord::Base
  has_many :client_categories_merges
  has_many :client_categories, :through => :clients_categories_merges
end

class ClientCategories < ActiveRecord::Base
  has_many :client_categories_merges
  has_many :clients, :through => :clients_categories_merges
end

class ClientCategoryMerges < ActiveRecord::Base
  belongs_to :client_category
  belongs_to :client
end

Check out this guide

修改this one以及相应的表单