2012-11-18 15 views
24

ile ilişki kurarım Merhaba Yeni Ruby on Rails. Küçük bir blog sitesi kurmaya çalışıyorum. İki tablom var Mesajlar ve Yorumlar. Her Gönderin birçok yorumu olacaktır. Bu komutları kullanarak tabloları üretiyorum.İskele

rails g scaffold Post title:string body:text author:string 
rails g scaffold Comment body:string author:string 

Şimdi ilişkiyi model sınıflarına eklemek istiyorum. Post sınıfına has_many :comments ve Yorum sınıfına belongs_to :title ekledim. Ancak, post.comments'u aramaya çalıştığımda, SQLException: no such column: comments.post_id diyerek bir çalışma zamanı hatası alıyorum. Göç oluşturma ve Açıklama altında post_id eklesem mi yoksa iskele ne zaman bunu başarmanın bir yolu var mı?

+1

Yardım için https://coderwall.com/p/f5mdoq adresini ziyaret edin. –

+1

Şu anda kabul edilen cevap güncelliğini yitirdiği için bu soru için kabul edilen yanıtı değiştirebilir misiniz? Thx – JamieD

cevap

9

Kesinlikle doğru yoldasınız.

rails g scaffold Comment body:string author:string post_id:integer 
+13

** Daha iyi yanıtı aşağıya bakın! ** – mb21

118

İskele: Comment iskeleyi oluştururken size post_id sütun eklerseniz ilişkiniz sonra

(hala has_many :comments ve belongs_to :post eklemeniz gerekir rağmen) Yani güncellenen jeneratör çağrısı şu şekilde görünecektir çalışacak aslında bu bir göç üretecektir :references veri türü

rails g scaffold Comment body:string author:string post:references 

kullanmalıdır, ilişkiler oluşturmak için bir yol sağlar bir post_id alanı olan yorumlar tablosu ve bunun için dizin. Jeneratör, Yorum modeline belongs_to :post'u da ekleyecektir. Eğer Mesaj modeli kendiniz için

has_many :comments 

eklemeniz gerekir böylece

Ancak ilişkinin ters tarafını oluşturmaz. Jeneratörün bunu başaramaması nedeniyle ihtiyaç duyduğunuz bir şey varsa, iç içe kaynak yönlendirmeyi de eklemeniz gerekecektir.

+16

bu kabul edilen yanıt olmalıdır –

+1

2 yıl sonra yanıtlandı))) – user2950593

+1

El ile has_many alanını eklediğinizde, geçişi nasıl üretiyorsunuz? – lapinkoira

İlgili konular