用户注册时从模型创建资源

时间:2017-10-16 03:07:49

标签: ruby-on-rails ruby database model-view-controller model

我正在尝试在注册新用户时创建资源[DebuggerDisplay("{count}, {flag}")] public sealed class MyClass { public int count { get; set; } public bool flag { get; set; } } 。 Mission也有一个外键Mission

Location

但不幸的是,这段代码不起作用。我该如何解决?

2 个答案:

答案 0 :(得分:1)

这个怎么样:

class User < ApplicationRecord
  after_create :create_mission

  private
  def create_mission
    missions.create! location_id: 1, name: 'Mission 1'
  end
end

现在,create!可以看到您的错误。试试这个。

答案 1 :(得分:1)

我不建议你在回调中创建关系。如果您需要在其他操作或控制台中创建用户,则会对您造成伤害。最好在创建后在控制器中创建它(在将来的某个服务对象中)

def create
  if @user.save
    @user.missions.create(...)
  end
end

您可以使用调试程序动态检查错误(使用rails https://github.com/deivid-rodriguez/byebug附带,只需在代码中插入&#39;调试程序),可能您有一些验证错误。