命名您的外键

时间:2013-05-07 14:53:58

标签: ruby-on-rails

假设您有一个模型User和一个模型Challenge

一个User可以成为挑战的主管。因此,Challenge与用户有belongs_to的关系。

该关系声明如下 在challenge.rb

  class Challenge < ActiveRecord::Base
     belongs_to :supervisor, :class_name => "User", :foreign_key => "user_id"

导致以下schema.rb

  create_table "challenges", :force => true do |t|
    t.string   "title"
    t.text     "description"
    t.datetime "start_date"
    t.datetime "end_date"
    t.string   "state"
    t.integer  "count"
    t.datetime "created_at",  :null => false
    t.datetime "updated_at",  :null => false

    # Notable line: 
    t.integer  "user_id"
  end

架构中的外键是应该命名为supervisor_id还是user_id

1 个答案:

答案 0 :(得分:3)

按照惯例,如果您将supervisor_id命名为:foreign_key,则会有更简单的时间:

  • 您可以跳过belongs_to声明
  • 中的belongs_to修饰符
  • 如果您需要另一个链接到通用用户的user_id关系,您可以调用那个{{1}},而无需重命名任何内容

除此之外,它真的没关系。也就是说,Rails不会在意。当然不值得进行“热烈的讨论”。