我有一个用户模型has_one Post模型,属于User_to User。通过before_save回调,我想创建一个(实际上是多个,但这是另一个问题)空(或更好,默认就像说“这是我的第一篇文章”)Post,每当新用户注册时。但是下面的功能:
def create_post
@post = Post.new(params[:post])
@post.user = self
@post.save
给出错误:
未定义的局部变量或方法`params'代表#
问题可能是什么?
答案 0 :(得分:0)
您无法访问模型中的params哈希值。
您不希望在after_save
回调中执行此操作,而是使用after_create
或before_create
我会说。
另外,我不明白为什么用户has_one发布...特别是如果你想创建几个。
在回调中:
如果用户has_one:post
self.create_post(default_values_hash)
如果has_many:posts
self.posts.create(default_values_hash)