Как мне обновить param контроллера, чтобы принимать вложенные атрибуты с помощью rails? - PullRequest
0 голосов
/ 10 июня 2019

Я работаю над приложением rails, мне было интересно, как обновить параметры контроллера для принятия вложенных атрибутов с помощью rails, это существующий контроллер;

class Product < ApplicationRecord

  accepts_nested_attributes_for :product_shop_shipping_options, reject_if: proc { |attributes| attributes['shipping_option_id'].blank? }

 def product_params
    params.require(:product).permit(
      :sku, :name, :shipping_option_id, :product_region_id
    )
  end

Мне было интересно, нужно ли мнечтобы добавить другой атрибут, я делаю это с помощью метода create или update в контроллере?

1 Ответ

2 голосов
/ 10 июня 2019
class Product < ActiveRecord::Base
  has_many :variants
  accepts_nested_attributes_for :image
end

Добавьте acceptpts_nested_attributes_for с именем связанной модели. В моем случае это изображение.

В контроллере вы должны добавить ниже код:

def product_params
  params.require(:product).permit(
   :name, :price,
   image_attributes: [ :id, :url, :alt, :caption ]
 )
end

В вашем случае это станет

def product_params 
    params.require(:product).permit( :sku, :name, 
    product_shop_shipping_options_attributes [ :shipping_option_id, 
   :product_region_id] )
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...