我正在尝试在Rails 3中使用after_initialize来自动构建某人的第一篇文章。我已经在模型中设置了默认值,但我希望在创建用户后,它会构建他们的第一个Post。因此,不只是default_values,它们将具有ID为1的Post条目。
型号:
class Etho < ActiveRecord::Base
belongs_to :user
attr_accessible :word_one, :word_two, :word_three, :word_four, :tagline
after_initialize :default_values
private
def default_values
self.word_one ||= "Adventagious"
self.word_two ||= "Funny"
self.word_three ||= "Multidisciplined"
self.tagline ||= "Shares the same visions as JFK. Wants to see the world fortune in prosperity."
end
end
答案 0 :(得分:0)
想出来。我忘了我可以在控制器内部构建。所以现在我有一个:默认的迁移,然后在用户创建方法我做一个构建。
迁移内部:
add_column :ethos, :tagline, :text, :default => 'Shares a birthday with JFK. Believes in prosperty amongst humans.'
在用户
上的create方法内ethos = @user.ethos.build
感谢Chris Duesing的帮助!
答案 1 :(得分:0)
只需使用回调方法“after_save”
class Etho&lt;的ActiveRecord :: Base的 belongs_to:用户 attr_accessible:word_one,:word_two,:word_three,:word_four,:tagline after_save:default_values
private
def default_values
self.word_one ||= "Adventagious"
self.word_two ||= "Funny"
self.word_three ||= "Multidisciplined"
self.tagline ||= "Shares the same visions as JFK. Wants to see the world fortune in prosperity."
end
end