[英]Ruby On Rails scaffold need to include foreign keys?
我正在學習軌道上的ruby的基礎知識,我想做一些簡單的查詢,但我有一個疑問:
我會有這些模型:
class Client < ActiveRecord::Base
has_one :address
has_many :orders
has_and_belongs_to_many :roles
end
class Address < ActiveRecord::Base
belongs_to :client
end
class Order < ActiveRecord::Base
belongs_to :client, counter_cache: true
end
class Role < ActiveRecord::Base
has_and_belongs_to_many :clients
end
現在,我將使用scaffold生成所有的東西,我想知道是否必須直接將外鍵放在腳手架中,如:
rails generate scaffold Adress street:string number:integer client_id:integer
或者,當我創建這些關聯然后遷移我的數據庫時,它們將是隱含的?
我不知道我是否以最好的方式解釋自己。
謝謝
是的,沒有參考。 您需要傳遞client_id
或對Client模型的引用,例如:
rails generate scaffold Address street:string number:integer client_id:integer:index
要么
rails generate scaffold Address street:string number:integer client:references
要么,在rails 4中你可以這樣使用belongs_to:
假設您的應用程序中有用戶模型
rails g scaffold comment belongs_to:user text:string
它在migrate文件夾中生成該類:
class CreateComments < ActiveRecord::Migration
def change
create_table :comments do |t|
t.string :text
t.belongs_to :user, index: true, foreign_key: true
t.timestamps null: false
end
end
end
您應該執行rake db:migrate
然后,此命令將user_id屬性創建為數據庫表中的索引列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.