Как получить доступ к вложенным параметрическим усилителям

Я хотел бы получить некоторые вложенные параметрические усилители. У меня есть Порядок, который имеет много Объектов и эти Объекты, у каждого есть Тип. я хотел бы добраться, type_id параметр от контроллеров создают метод.

@order = Order.new(params[:order])
@order.items.each do |f|
  f.item_type_id = Item_type.find_by_name(f.item_type_id).id
end

Причина состоит в том, что я хочу, чтобы пользователь смог создать новый item_types в представлении. Когда они делают это, я использую вызов Ajax, добавляют их к дб. Когда они отправляют форму, я получаю названия item_type в item_type_id параметре, и я хочу найти корректный item_type и установить идентификатор на это

12
задан Flexo 10 April 2010 в 05:50
поделиться

1 ответ

Чтобы получить доступ к вложенным полям из params , сделайте следующее:

params[:order][:items_attributes].values.each do |item|
  item[:type_id]
end if params[:order] and params[:order][:items_attributes]

Вышеупомянутое решение будет работать ТОЛЬКО в том случае, если вы указали правильные ассоциации и accept_nested_attributes_for .

class Order < ActiveRecord::Base
  has_many :items
  accepts_nested_attributes_for :items, :allow_destroy => true
end

class Item < ActiveRecord::Base
  belongs_to :order
end
26
ответ дан 2 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: