2013-10-07 2 views
0

Мне интересно, есть ли лучший способ управлять транзакциями с Ruby on rails, чем привязывать его к модели класса?Ruby on Rails Sql транзакции

Student.transaction do 
    Course.transaction do 
    course.enroll(student) 
    student.units += course.units 
    end 
end 

Я не хочу, чтобы мои транзакции, чтобы быть для конкретных моделей, так что я могу начать/совершить/откатить их genericly на уровне контроллера, без модели зависимости.

ответ

2

Вы также можете использовать ActiveRecord::Base.transaction.

AFAIK нет никакой разницы вообще. Открытие транзакции с одной из ваших моделей не ограничивает использование разных объектов, не принадлежащих этой модели в транзакции вообще.

Смотрите здесь: http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

+0

Спасибо за ответ, я должен читать дальше Точную в следующий раз :) – user2854544