【发布时间】:2012-07-07 18:26:58
【问题描述】:
我正在尝试在 Rails 3 中使用 after_initialize 来自动构建某人的第一篇文章。我在模型中设置了默认值,但我希望一旦创建用户,它就会构建他们的第一个帖子。因此,它们将有一个 ID 为 1 的 Post 条目,而不只是 default_values。
型号:
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
【问题讨论】:
-
您希望在首次创建
User时创建一个虚拟帖子?使用这样的默认值不是方法。而是在UserObserver中创建帖子,并使用您想要的虚拟帖子的任何值。 -
同意 Zabba,这应该是为了响应用户创建而不是精神创建。把它放在观察者api.rubyonrails.org/classes/ActiveRecord/Observer.html(或者不太正确的用户控制器创建方法)
-
你们有没有使用 ActiveRecord Observer 的示例。这些例子有点挑战性。
标签: ruby-on-rails rails-activerecord