2012-06-21 34 views
0

我想知道對我的模型做一個小更新的最佳方法是什麼。我的意思是,我想要一個按鈕,通過has_many:through關係創建或破壞我的兩個模型之間的關係。所以我有用戶,Dvd,Queues和DQueue。最簡單的方法來添加/刪除模型關係

我想添加一個簡單的按鈕到很多頁面,當點擊時,添加一個Dvd到用戶隊列。什麼是完成這個最好的方法?我應該在每個頁面上加載一個簡單的表單嗎?我應該將按鈕鏈接到處理它的控制器操作?如果我使用表單,我需要嵌套屬性嗎?

謝謝!

回答

0

您可以添加動作add_dvd到你需要的控制器,並使用button_todoc)幫手。你也可以使用ajax。只需將remote: true選項添加到按鈕並與add_dvd一起使用並處理您的響應:)

1

最簡單的方法將是使用單獨的控制器,它只是創建/銷燬行動DvdQueues,然後在使用的link_to與the Rails javascript-helper :method視圖(:職位|:在這種情況下刪除)

例如:

class DvdQueuesController < ApplicationController 
    def create 
    # params[:dvd_queue] = {"dvd_id": x, "queue_id": y} 
    @user.dvd_queues.create params[:dvd_queue] 
    redirect_to dvds_path 
    end 

    def destroy 
    dvd_que = @user.dvd_queues.find_by_id params[:id] 
    dvd_que.destroy 
    redirect_to dvds_path 
    end 
end 

module DvdQueuesHelper 
    def link_to_add_or_remove_from_queue(dvd, text) 
    if @user.dvd_queues.exists? :dvd_id => dvd.id 
     link_to text, dvd_queues_path(dvd.id), :method => :delete 
    else 
     link_to text, dvd_queues_path, :method => :post 
    end 
    end 
end 
相關問題