2012-10-26 37 views
0

構思是用戶創建條目,並且文本不屬於一個用戶,而是屬於多個條目。當用戶創建第一個條目時,將創建一個文本,但不完全屬於該用戶。想想每個人寫10行的10個人,10行的文本。我如何編寫遷移?謝謝。如何在Rails中爲用戶,文本,條目表建模

Sketch--

User 
    has many entries 
    (has many texts, entries through texts?) 

Text 
    has many entries 

Entry 
    belongs to text 
    belongs to user 

# updated... 
User 
has_many :entries 
has_many :texts, :through => :entries 

Text 
has_many :entries 
has_many :users, :through => :entries 

Entry 
belongs_to :user 
belongs_to :text 

回答

1

基本的migrat離子以符合上述模型協會將

create_table :users do |t| 
    # User Fields 
    t.timestamps 
end 

create_table :texts do |t| 
    # Text Fields 
    t.timestamps 
end 

create_table :entries do |t| 
    # Entry Fields 
    t.integer :user_id 
    t.integer :text_id 
    t.timestamps 
end 

您可能還需要在:entries表附加字段的文本中的排序項(取決於您的應用程序)。

+0

謝謝你,我做了這些改變 – tidelake

1

遷移是很容易寫的,一旦你的模型之間作出決定的關聯

User 
has_many :entries 
has_many :texts, :through :entries 

Text 
has_many :entries 

Entry 
belongs_to :user 
belongs_to :text 

的條目表將有2列,用於存儲用戶的ID和文字(user_id & text_id),就是這樣,你現在可以輕鬆地爲你的每個模型編寫遷移...

+0

怎麼樣的文本表? texts_entries?我該怎麼寫? – tidelake

+0

如果文本是由用戶創建的,那麼您應該爲belongs_to:user添加一行到您的文本表格,然後您的文本表格將具有存儲用戶ID的列(user_id)... –

+0

您會看看我的更新並幫助我編寫遷移?我不清楚Text表是什麼樣的,或者根本沒有文本表,只有一個條目表?當用戶創建一個「新」條目時,它會在條目上設置一個新的text_id?感謝您的幫助。 – tidelake

相關問題