Ruby on Rails. Как делают я использую Активную Запись .build метод в a: принадлежит отношениям?

Определение переменной js выполняется без $

.
128
задан Josh Crozier 21 November 2015 в 20:55
поделиться

1 ответ

Где это задокументировано:

Из документации API в ассоциации has_many в " Модуль ActiveRecord :: Associations :: ClassMethods "

collection.build ( attribute = {},…) Возвращает один или несколько новых объектов тип коллекции, которая была создается с атрибутами и связаны с этим объектом через внешний ключ, но еще не был сохранены. Примечание: это работает только если связанный объект уже существует, а не если это ноль!

Ответом для построения в противоположном направлении является слегка измененный синтаксис. В вашем примере с собаками,

Class Dog
   has_many :tags
   belongs_to :person
end

Class Person
  has_many :dogs
end

d = Dog.new
d.build_person(:attributes => "go", :here => "like normal")

или даже

t = Tag.new
t.build_dog(:name => "Rover", :breed => "Maltese")

Вы также можете использовать create_dog, чтобы сохранить его мгновенно (во многом как соответствующий метод "create", который вы можете вызвать для коллекции)

Как рельсы достаточно умны? Это волшебство (точнее, я просто не знаю, хотелось бы узнать!)

147
ответ дан 24 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

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