2010-08-03 72 views
0

您好我有has_and_belongs_to_many之間的關係帖子和評論,並在我的編輯行動我有窗體,返回我的ID列表1,3,5,8等我想建立之間的關係,我的當前模型和所有模型IDS列表,以便@post.comments將返回評論與1,3,5,8 IDS從ID列表建立關係

其實我需要執行

DELETE FROM comments_posts 
WHERE post_id = @post.id 

INSERT INTO comments_posts VALUES 
(1,@post.id) 
(3,@post.id) 
(5,@post.id) 
(8,@post.id) 

或做類似的事情

回答

1
params[:list] ||= []    # Create an empty array if form is empty 
@posts.comment_ids = params[:list] # Recreate comment associations 

Railscast about HABTM Checkboxes見只是基本的關聯。

+0

當然!我寫了「comments_ids」而不是「comment_ids」,這不是我第一次這樣做:) – Bohdan 2010-08-03 22:20:03

0

也許你正在尋找像這樣的東西。

list = params[:list].join(',') # Assumes space separated to begin with 
@posts.comments.find(:conditions => ["id IN (?)", list]) 

UPDATE

除了:我對您的應用程序的HABTM關係感到驚訝。你真的意味着一個帖子可以有很多評論評論可以屬於很多帖子?當然評論只屬於一個職位,不是?

不過,我相信你能實現你要找的內容(使用你的例子)如下:

@post.comments.destroy_all 

@post.comments.create(...) 

它在ActiveRecord的