我想知道對我的模型做一個小更新的最佳方法是什麼。我的意思是,我想要一個按鈕,通過has_many:through關係創建或破壞我的兩個模型之間的關係。所以我有用戶,Dvd,Queues和DQueue。最簡單的方法來添加/刪除模型關係
我想添加一個簡單的按鈕到很多頁面,當點擊時,添加一個Dvd到用戶隊列。什麼是完成這個最好的方法?我應該在每個頁面上加載一個簡單的表單嗎?我應該將按鈕鏈接到處理它的控制器操作?如果我使用表單,我需要嵌套屬性嗎?
謝謝!
我想知道對我的模型做一個小更新的最佳方法是什麼。我的意思是,我想要一個按鈕,通過has_many:through關係創建或破壞我的兩個模型之間的關係。所以我有用戶,Dvd,Queues和DQueue。最簡單的方法來添加/刪除模型關係
我想添加一個簡單的按鈕到很多頁面,當點擊時,添加一個Dvd到用戶隊列。什麼是完成這個最好的方法?我應該在每個頁面上加載一個簡單的表單嗎?我應該將按鈕鏈接到處理它的控制器操作?如果我使用表單,我需要嵌套屬性嗎?
謝謝!
您可以添加動作add_dvd
到你需要的控制器,並使用button_to
(doc)幫手。你也可以使用ajax。只需將remote: true
選項添加到按鈕並與add_dvd
一起使用並處理您的響應:)
最簡單的方法將是使用單獨的控制器,它只是創建/銷燬行動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