Rails 3: выборка предварительно сгенерированного значения из связанной модели - PullRequest
1 голос
/ 02 марта 2011

У меня есть приложение, в котором клиент предоставит список предварительно сгенерированных кодов.Когда кто-то покупает лицензию, один из этих кодов будет обслуживаться.

Существует модель Product, которая has_many :codes, и модель Code, которая belongs_to :product.Модель кода имеет state, который либо «назначен», либо «не назначен».

Как мне обеспечить, чтобы каждый код использовался только один раз, даже если несколько процессов пытаются его получить?В старые добрые времена я блокировал запись, а если не мог ее заблокировать, переходил к следующей, но я даже не уверен, что смогу сделать что-то подобное в Rails.

1 Ответ

0 голосов
/ 02 марта 2011

«Плохие старые времена», где существовала КИСЛОТА, все еще существуют сегодня. Подробнее о блокировке Rails / AR на направляющих .

Item.transaction do
  i = Item.lock("LOCK IN SHARE MODE").find(id)
  # get rollin
  i.save!
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...