У меня много проблем с AppDomains. В настоящее время у меня есть AppDomain, содержащий элементы управления камерой, и я пытаюсь вернуть события из этого вторичного AppDomain (например, снимок) в основную программу. Кажется, все настроено правильно (события зарегистрированы, функции будут выполняться через границы домена), но когда я пытаюсь вызвать, ничего не происходит. но как сделать так, чтобы он не создавал новые записи, если запись уже существует? В качестве примера: скажем, у меня есть три модели, Team, ...
Я с большим успехом использую метод accepts_nested_attributes_for Rails, но как его использовать , а не создавать новые записи, если запись уже существует?
В качестве примера:
Скажем, у меня есть три модели: «Команда», «Членство» и «Игрок», и у каждой команды есть множество игроков, и игроки могут принадлежать ко многим командам. Затем модель команды может принимать вложенные атрибуты для игроков, но это означает, что каждый игрок, отправленный через комбинированную форму команда + игрок (ы), будет создан как новая запись игрока.
Как мне поступить, если я хочу создать новую запись игрока таким образом, если нет т уже игрок с тем же именем? Если есть игрок с тем же именем, новые записи игрока не должны создаваться, но вместо этого должен быть найден правильный игрок и связан с новой записью команды.
Когда вы определяете хук для автосохранения ассоциаций, обычный путь кода пропускается и вместо него вызывается ваш метод. Таким образом, вы можете сделать следующее:
class Post < ActiveRecord::Base
belongs_to :author, :autosave => true
accepts_nested_attributes_for :author
# If you need to validate the associated record, you can add a method like this:
# validate_associated_record_for_author
def autosave_associated_records_for_author
# Find or create the author by name
if new_author = Author.find_by_name(author.name)
self.author = new_author
else
self.author.save!
end
end
end
Этот код не тестировался, но он должен быть именно тем, что вам нужно.