Ruby on Rails:"find_create_by_user"

Dre*_*rew 2 ruby ruby-on-rails

我想知道为什么这对我不起作用:

Recipe.find_or_create_by_user_id(current_user.id, :name => "My first recipe")
Run Code Online (Sandbox Code Playgroud)

如果用户的id不存在,则会创建配方,但名称("我的第一个配方")不包含在新创建的条目中.有什么我做错了吗?我不太清楚这一点.

tad*_*man 6

试试这种方式:

Recipe.find_or_create_by_user_id(current_user.id) do |recipe|
  recipe.name = 'My first recipe'
end
Run Code Online (Sandbox Code Playgroud)

只有在必须创建记录时才会调用该块.