销毁后无法重定向到“ category_products_path”(未提供:category_id)

时间:2018-07-26 18:59:37

标签: ruby-on-rails ruby

我正在尝试将@ product.destroy之后的商品重定向到category_products,但无法获取:category_id。我不知道如何在没有:category_id的情况下重定向回product#index。以下是我的products_controller.rb,耙路径和错误消息-任何人都知道快速修复方法?

products_controller.rb(破坏)

def destroy
    @category = Category.find(params[:category_id])
    @product = Product.find(params[:id])
    @product.destroy
    respond_to do |format|
      format.html { redirect_to category_products_path(@category), notice: 'Pro$
      format.json { head :no_content }
    end
 end

耙道:

category_products GET    /categories/:category_id/products(.:format)                                              products#index

错误:“没有ID找不到类别”

1 个答案:

答案 0 :(得分:0)

如果查看参数,则会发现没有params[:category_id],因为您使用的是浅层嵌套。

尝试更多类似的东西:

def destroy
  @product = Product.find(params[:id])
  @category = @product.category
  @product.destroy
  respond_to do |format|
    format.html { redirect_to category_products_path(@category), notice: 'Pro$
    format.json { head :no_content }
  end
end

这自然是假设Product belongs_to :category

(我忽略了结尾的$,因为您的编辑器或复制粘贴似乎有些问题。)