0

鑑於這種關係:導軌:排序has_and_belongs_to_many關係

class Doc < ActiveRecord::Base 
    has_and_belongs_to_many :articles 
end 

class Article < ActiveRecord::Base 
    has_and_belongs_to_many :docs 
end 

你會如何排序的方法與jQuery用戶界面的文件的articles?我下面this的教程,這是一切都很好,直到它來到的時間來運行這個遷移:因爲它看起來像加倍向上

rails g migration add_position_to_faqs position:integer 

時,我已經有一個關係表,即:

create_table "articles_docs", :id => false, :force => true do |t| 
    t.integer "article_id" 
    t.integer "doc_id" 
end 

add_index "articles_docs", ["article_id", "doc_id"], :name => "index_articles_docs_on_article_id_and_doc_id", :unique => true 

有什麼想法嗎?沒有真正理解關係表並不能幫助我理解這一點。

回答

2

使用has_many :through而不是has_and_belongs_to_many。這將爲您提供一箇中間模型來保存位置列,並且您將對進行排序,而不是對文章進行排序。

+0

您是否知道轉換的任何資源或教程?我能找到的所有東西似乎有點過時和/或不清楚。 –

+1

我不知道任何好的教程,但它通常是一個非常簡單的過程。爲連接生成新模型,將兩個belongs_to關聯添加到它,將has_and_belongs_to_manys更改爲has_many:throughs,然後修復您的遷移(遷移,刪除habtm遷移,然後遷移)。 –