如何在rails中插入多个表

时间:2009-11-04 12:16:57

标签: ruby-on-rails activerecord callback

我正在尝试使用rails插入多个表.. 我有一个名为用户和服务的表。 当我创建用户时,用户详细信息应该进入用户,服务名称和用户ID应该进入服务表。 任何帮助都会受到极大关注。

感谢。

2 个答案:

答案 0 :(得分:6)

您可以在创建用户时添加回调以创建新服务。

class User < ActiveRecord::Base
    def after_create
        Service.create!(:name => 'my_service_name', :user_id => self.id)
    end
end

在创建新用户后触发after_create方法。因此,每次创建新用户时都会创建一个新服务。

您可以在Rails Guides上找到有关回调的更多信息。

答案 1 :(得分:3)

您也可以使用accept_nested_attributes_for:

class User < ActiveRecord::Base
  has_one :service
  accepts_nested_attributes_for :service
end

User.create(:name => "Example User", :service_attributes => {:name => "Example Service"})

使用嵌套表单填写service_attributes哈希很简单。