Rails3 - 将默认值添加到关联表after_create

时间:2012-02-29 14:54:48

标签: ruby-on-rails-3 model initialization after-create

我正在寻找一种在创建父项后添加关联数据库的方法。

我有一个简单的User模型,只包含已归档的username和一个相关的(has_many)子Place模型,其字段为placenames

用户创建后,Places的表格应填入以下条目:欧洲,亚洲,afrika。 我认为要采用的方法是使用after_create方法,但我找不到如何从我的父模型中触发创建。

2 个答案:

答案 0 :(得分:3)

您可以像这样声明after_create

class User 

  after_create :initialize_places

  def initialize_places
    self.places.create(:placename => 'Europe')
    self.places.create(:placename => 'Asia')
    self.places.create(:placename => 'Africa')
  end
end

并像这样创建用户

user = User.create(:username => 'The Black Adder')

答案 1 :(得分:0)

嗯,不确定你到底想要做什么。

您是否从#create表单中获取了与用户关联的位置(例如,用户可以使用复选框勾选预定义的位置)? 或者用户是否可以通过逗号分隔列表提供位置,用户创建操作应该清除重复项并在运行时向数据库中添加新的?