Я бы попытался извлечь бизнес-логику в драгоценный камень. Большая часть этого будет просто скопировать / вставить с некоторыми изменениями тут и там.
Большим преимуществом этого подхода является то, что ваш драгоценный камень будет просто фокусироваться на вашей бизнес-логике, поэтому он не будет иметь дело с представлением и т. Д. Пока вы все тестируете с помощью tdd, все будет в порядке.
Лучшим вариантом будет просто запросить ваш драгоценный камень, а затем вызвать его самый важный метод, например:
require 'mygem'
class SomeClass < ActiveRecord::Base
def important_method arg1, arg2
MyGem.compute_results arg1, arg2
end
end
Таким образом, ваш код остается чистым и модульным, более того, вы можете легко использовать свою логику в другом приложении rails.
Это предполагает, что ваша логика - это хардкорные вычисления / код рубина. Если в вашей бизнес-логике есть несколько SQL-операторов, оставьте их в вашем приложении.