简体   繁体   English

Rails销毁操作不会删除

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM