Существует также тестовая структура Джерси (http://jersey.java.net/nonav/documentation/latest/user-guide.html#test-framework), но, как Йохан уже упомянул REST-гарантированную структуру, я бы также порекомендуйте эту платформу - она имеет некоторые приятные особенности, такие как DSL, такие как синтаксис, проверка XPath и схемы, простая загрузка файлов и использование Groovy лямбда-выражений для поиска в возвращаемых структурах JSON.
Я написал две статьи ..
Вы должны инкапсулировать защищенный метод внутри модельного метода, например:
class Ticket < ActiveRecord::Base
def self.all_tickets_from(user)
with_exclusive_scope{user.tickets.find(:all)}
end
end
По возможности избегайте default_scope
.
Я думаю, вам стоит еще раз спросить себя, зачем вам default_scope
. Противодействие default_scope
часто оказывается более беспорядочным, чем оно того стоит, и его следует использовать только в редких случаях. Кроме того, использование default_scope
не очень показательно, когда доступ к ассоциациям билетов осуществляется вне модели билета (например, «Я позвонил account.tickets
. Почему там нет моих билетов? "). Это одна из причин, по которой with_exclusive_scope
защищен. Вы должны попробовать синтаксический уксус , когда вам нужно его использовать.
В качестве альтернативы используйте гем / плагин, например pacecar , который автоматически добавляет полезные named_scopes к вашим моделям, давая вам больше раскрывая код везде. Например: