将列插入与主键相同的值

时间:2011-10-06 13:57:43

标签: ruby-on-rails activerecord primary-key

可以在Rails中插入行并将id的值赋给特定列,例如如果我的表有ID和LINK列,其中LINK链接到同一个表:

ID | LINK
1  |   1
2  |   1
3  |   1

插入第2列和第3列很简单,但是有没有办法用单个INSERT语句插入第1列?

这可能是通过rails语法还是我需要自定义SQL(在PostgreSQL上)?

[当然,这可以通过INSERT / UPDATE完成,但我需要在此表上禁用更新]

TX Zaharije

1 个答案:

答案 0 :(得分:0)

这是一张自我加入的表格。您不需要自己编写SQL。只需在模型中定义这种关系,如下所示:

class Employee < ActiveRecord::Base
  has_many :subordinates, :class_name => "Employee"
  belongs_to :manager, :class_name => "Employee",
    :foreign_key => "manager_id"  # or what you call LINK
end

此外,链接可能不是一个好的列名,如果可以,请尝试选择更具描述性的内容。