Rails:没有ID找不到对象

时间:2019-04-30 13:09:30

标签: ruby-on-rails

我正在两个模型productorder之间建立关联。我想将某些属性从product模型复制到order模型,然后在视图中显示。

我也在使用wicked,因此更改路线可能会影响此效果,但是我尝试的解决方案无效。

我的OrdersController

before_action :set_product, only: [:create]

def create
@order = current_user.orders.build(order_params)
@order.business = @product.category
@order.save
end

private

def set_product
@product = Product.friendly.find(params[:id])
end

我的路线:

  resources :products do
    collection do
      get :ruby_on_rails, path: "ruby-on-rails"
    end
    resources :product_steps, path: "step", only: [:show, :update]
  end

  resources :orders do
    collection do
      get :requests
    end
    resources :order_steps, path: "step", only: [:show, :update]
  end

1 个答案:

答案 0 :(得分:0)

要在您的订单控制器中访问产品ID,您需要将订单路线嵌套在一个产品中。嵌套产品参数不是:id而是:product_id

时要小心

Wicked文档中有一个有关嵌套资源的示例,您可以have a look here