最も簡単な方法は、作成/破棄アクションだけでDvdQueuesに個別のコントローラーを使用し、次にRails javascript-helper:method(この場合は:post |:delete)でlink_toを使用するビューで使用することです。
例えば:
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