[英]Rails destroy action doesn't delete
I want to add service objects in to my controller. 我想在我的控制器中添加服务对象。 However destroy action seems didn't work properly - basically it doesn't delete anything just redirect to the page without flash message. 但是销毁操作似乎无法正常工作-基本上它不会删除任何内容,只是重定向到没有Flash消息的页面。
user_stock_destroyer.rb 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 user_stocks_controller.rb
class UserStocksController < ApplicationController
def destroy
UserStocksDestroyer.new(current_user, params, flash)
redirect_to my_portfolio_path
end
end
You're creating the object but you're not calling call
, the method that does the work 您正在创建对象,但没有调用call
,即完成工作的方法
def destroy
UserStocksDestroyer.new(current_user, params, flash).call
redirect_to my_portfolio_path
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.