我想将服务对象添加到我的控制器中。但是,销毁操作似乎无法正常工作-基本上,它不会删除任何内容,只是重定向到没有Flash消息的页面。
user_stock_destroyer.rb
class UserStocksDestroyer
def initialize(current_user, params, flash)
@current_user = current_user
@params = params[:id]
@flash = flash
end
def call
stock = Stock.find(params)
@user_stock = UserStock.where(user_id: current_user.id, stock_id: stock.id).first
@user_stock.destroy!
flash[:notice] = 'Stock successfully removed'
end
private
attr_reader :current_user, :params, :flash
end
user_stocks_controller.rb
class UserStocksController < ApplicationController
def destroy
UserStocksDestroyer.new(current_user, params, flash)
redirect_to my_portfolio_path
end
end
答案 0 :(得分:5)
您正在创建对象,但没有调用call
(执行工作的方法)
def destroy
UserStocksDestroyer.new(current_user, params, flash).call
redirect_to my_portfolio_path
end