Rails: не удалось найти объект без идентификатора - PullRequest
0 голосов
/ 30 апреля 2019

У меня связь между двумя моделями product и order. Я хочу скопировать некоторые атрибуты из модели product в модель order и впоследствии отобразить в виде.

Я также использую wicked, поэтому изменения в маршрутах могут повлиять на это, но решения, которые я попробовал, не сработали.

My 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 голосов
/ 30 апреля 2019

Чтобы получить доступ к идентификатору продукта в вашем контроллере заказов, вам необходимо вложить маршруты заказов в один из них. Будьте осторожны, когда вложенные параметры продукта не :id, а :product_id

У вас есть пример в документации Wicked о вложенных ресурсах, вы можете посмотреть здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...