Re: [問題] Rails中AR Associations的單複數問題
※ 引述《tonytonyjan (南洋大兜蟲)》之銘言:
: 環境:
: Rails ~> 3.0.0
: 狀況:
: 在閱讀文章、書籍的時候,看到每個人都說
: has_one, belongs_to後面要放單數的association_id
: has_many, has_and_belongs_to_many及:through後面要放複數
: 但是皆知其然不知其所以然
: 那些association_id的域名來自哪裡?
: 是DB中已存在的table name嗎?還是已存在的model name呢?
這幾個association方法都有參數是 :foreign_key 和 :class_name
這兩個值通常不需要設定, 因為rails會依照慣例幫你設定
belongs_to :user 等同於
belongs_to :user, :foreign_key => :user_id, :class_name => "User"
至於DB的table叫啥,依照慣例則是Model名字的複數:
class UserJob < ActiveRecord::Base
end
等同於
class UserJob < ActiveRecord::Base
set_table_name :user_jobs
set_primary_key :id
end
因此, 如果你通通依照rails慣例, 你就不需要寫 set_table_name,
set_primary_key, :foreign_key, :class_name....這些參數了, 這就叫
慣例勝於設定(Convention Over Configuration)原則
: 我如果故意單數寫複數,複數寫單數,仍可以運作嗎?
no, 除非你手動指定 :foreign_key 和 :class_name 等
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.174.138
※ 編輯: ihower 來自: 111.240.174.138 (08/01 03:44)
推
08/01 08:19, , 1F
08/01 08:19, 1F
推
08/02 12:24, , 2F
08/02 12:24, 2F
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章