rails: создайте Parent, если не существует, пока создаете дочернюю запись - PullRequest
3 голосов
/ 28 августа 2010

Есть ли у вас рекомендации по следующим вопросам:

У меня есть модель производителя, у которой есть инвентарь

В моей новой форме инвентаризации я хочу поле, которое отображается на Manufacturer.name так, чтобы когда один отправляет новую Инвентаризацию из приложения:

  • ищет производителя с «именем» из формы
    • если он существует, тогда присвойте идентификатор @ инвентаризации.manufacturer_id и сохраните @ инвентарь
    • если его не существует, создайте производителя с «именем» из формы, присвойте идентификатор @ inventory.manufacturer_id и сохраните
    • есть работа по проверке новой формы инвентаризации
      • такой, что если форма инвентаризации не проходит проверку в поле, отличном от 'name'
        • поле 'имя' будет заполнено тем, что введено пользователем (но новый производитель не будет создан, пока форма не пройдет проверку)

1 Ответ

4 голосов
/ 28 августа 2010

Вы можете попробовать вот так:

class Inventory < ActiveRecord::Base

  ...

  belongs_to :manufacturer

  ...

  def manufacturer_name
    manufacturer && manufacturer.name
  end

  def manufacturer_name=(value)
    self.manufacturer = Manufacturer.find_by_name(value)
    self.manufacturer ||= Manufacturer.new(:name => value)
  end

  ...

end

В этом случае вы должны вывести текстовое поле factory_name в форме инвентаря.

...