Rails after_create创建一个相关对象

时间:2013-11-07 14:21:00

标签: ruby-on-rails ruby ruby-on-rails-4

我想为每个用户公司创建一个默认的类别

诠,

User
  has_many :companies

Company
  belongs_to :user
  has_many :categories

用户创建新公司后,我希望它有一个默认类别。

类似

Company.rb

after_create :create_default_category

private

  def create_default_category
    self.category.new(name: "default")
  end

上面的代码并不奇怪,功能失调。非常感谢你的帮助!

2 个答案:

答案 0 :(得分:3)

问题是因为你想要创建类别但是你有一个has_many关系 - 所以如果你不想在after_create之后你必须使用categories.create这样:

self.categories.create(name: "default")

答案 1 :(得分:0)

def create_default_category
    category = self.category.new(name: "default")
    category.save
end