2010-08-27 3 views
3

Есть лучшие практиков для следующего ?:рельсов: создать подразделы, если не существует, whilte создания дочерней записи

Я модель производителя, что HAS_MANY Инвентаря

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

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

ответ

3

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

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 

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

+0

lest - это хорошо выглядеть !! Я буду реализовывать завтра и вернуться. благодаря! – telecasterrok

 Смежные вопросы

  • Нет связанных вопросов^_^