Ответ 1
Вы можете группировать столбцы вместе с помощью _and_
. Это должно сделать трюк:
Venue.find_or_create_by_location_and_showdate(location, showdate)
У меня есть модель места, и я хочу сделать это
Venue.find_or_create_by_
но я хочу, чтобы новое место создавалось, если одно имя и дата еще не существуют.
Например
=> Venue(id: integer, location: string, showdate: datetime, created_at: datetime, updated_at: datetime)
Место встречи уникально и должно быть создано, если местоположение и шоу не присутствуют в db
Вы можете группировать столбцы вместе с помощью _and_
. Это должно сделать трюк:
Venue.find_or_create_by_location_and_showdate(location, showdate)
В рельсах 4 вы бы сделали:
Venue.find_or_create_by(location: location, showdate: showdate)
Гораздо красивее, если вы спросите меня!
my_class = ClassName.find_or_initialize_by_showdate_and_location(showdate,location)
my_class.update_attributes!
find_or_initialize найти метод по имени и местоположению в базе данных. Если запись не существует, она инициализирует новую запись с помощью showdate и location. http://api.rubyonrails.org/classes/ActiveRecord/Base.html Эта ссылка поможет вам найти find_or_initialize и find_or_create.