0

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

一个人User可以成为挑战的监督者。因此与用户Challengebelongs_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

4

1 回答 1

3

按照惯例,如果supervisor_id出于 2 个原因将其命名,则时间会更简单:

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

除此之外,真的无所谓。也就是说,Rails 不会在意。当然不值得花时间进行“激烈的讨论”。

于 2013-05-07T15:03:50.893 回答