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