0
我有一個用戶模型has_one後模型,belongs_to用戶。通過before_save回調,我想創建一個(實際上是多個,但這是另一個問題)空(或更好,默認喜歡說「這是我的第一篇文章」)Post,每當有新用戶註冊時。但下面的功能:無法在其關聯的模型中創建模型
def create_post
@post = Post.new(params[:post])
@post.user = self
@post.save
給出了一個錯誤:
未定義的局部變量或方法`PARAMS'爲#
可能的問題是什麼?
對,應該有has_many。但爲什麼不before_save?我認爲before&after_create回調會帶來創建孤立帖子的風險,如果某事變壞,並且用戶沒有得到保存。 – barerd
before_save會在每次保存用戶時執行,當你更新它時等等。如果你使用after_create,我認爲用戶沒有被保存是沒有風險的。如果使用before_create,則可以執行'self.posts.build({})'而不是'.create',以便在用戶不在時創建帖子。 – Robin
我看,before_create比我想的要好。只是擴大一點,可以這樣做:self.build_post或self.posts.build({rating =>(5..12).to_a.sample「})得到一個隨機值嗎? – barerd