Разрешить активной модели записи назначать ассоциацию с использованием строки - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть довольно простой набор моделей, где у «Проекта» есть один «Владелец». Я хотел бы позволить пользователям вводить имя владельца при создании нового проекта. Если владелец не существует, новый должен быть создан. Есть ли хороший способ сделать это? Я думал об использовании attr_accessor и before_validation, однако кажется, что это будет противоречить отношениям Есть идеи? Спасибо!

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Я бы использовал что-то вроде этого в вашем контроллере:

def update
  Project.transaction do
    @project.owner = Owner.find_or_create_by_name(params[:project].delete(:owner_name))
    @project.attributes = params[:project]
    @project.save!
  end
end
1 голос
/ 09 ноября 2010

Используйте что-то отличное от названия ваших отношений ... owner_name должно быть в порядке. Затем напишите необходимый before_validation метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...