Дублирование поля формы при редактировании вложенной формы - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть два класса Еда и food_category_price .

Ассоциация выглядит примерно так:

has_many :food_category_prices, dependent: :destroy
accepts_nested_attributes_for :food_category_prices

Контроллер продуктов выглядит как-то вот так для new , create и edit actions.

def new
   @food = current_department.foods.new
   @food.food_category_prices.build
end

def edit
   @food = current_department.foods.find(params[:id])
end

 def create
    @food = current_department.foods.create(food_params)
    if @food.persisted?
      flash[:notice] = "Food was successfully created."
      redirect_to foods_path
    else
      flash[:error] = "Error while adding food"
      render :new
    end
  end

Мои параметры питания выглядят примерно так: (Я внес в белый список id вложенных атрибутов)

def food_params
    params.require(:food).permit(:name, :description, :price, :image ,food_category_prices_attributes: [:id,:category_id,:extra_price],:category_ids => [])
end

Вложенная форма для нового действия пищи:

= form_for @food do |f|
  .field.form-group
    = f.file_field :image, class: 'd-none'
    ......
    ......
    // Nested form from here
  - current_department.categories.where(category_kind: 2).each do |category|
    = f.fields_for :food_category_prices do |g|
      = g.label :category_id, category.name + "("+String(category.price)+")"
      = g.hidden_field :category_id, value: category.id
      = g.label :extra_price, "Extra Price"
      = g.number_field :extra_price

Задача:

Код слова perfeclty отлично подходят при создании новой еды и вложенных food_categoy_prices.

Проблема в том, что при редактировании формы атрибуты дублируются. Метки, такие как дополнительная цена и category_id , дублируются.

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