假设您有一个模型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
?
答案 0 :(得分:3)
按照惯例,如果您将supervisor_id
命名为:foreign_key
,则会有更简单的时间:
belongs_to
声明belongs_to
修饰符
user_id
关系,您可以调用那个{{1}},而无需重命名任何内容除此之外,它真的没关系。也就是说,Rails不会在意。当然不值得进行“热烈的讨论”。