使用rails和active record,是否可以在创建时将id设置为自引用?
我遇到的问题是一个人是他们自己的主管。我想在person的create语句中设置supervisor_id字段。
class Person < ActiveRecord::Base
belongs_to :supervisor, :class_name => "Person", :foreign_key => "supervisor_id"
...
Person.create(:name => "John Smith", :supervisor => ?self?)
从mysql的角度来看,我没有看到在单个查询中这是如何实现的。 rails有内置的方法吗?我目前的计划是一个标志和一个后创建。
答案 0 :(得分:1)
由于在创建对象之后才分配id,因此在rails中执行此操作的最简单方法是使用after_create回调。
如果你想要真正进步,你可能能够做一个mysql触发器......但这似乎比它的价值更麻烦。