Rails scope найти с текущим пользователем

Я использую Rails 3 с Devise для аутентификации пользователя. Скажем, у меня есть модель User с включенным Devise, модель Product и что у User has_many Products.

В моем контроллере Products я бы хотел, чтобы мой метод поиска находился в области действия current_user, т.е.

@product = current_user.products.find (params [: id])

, если пользователь не является пользователем с правами администратора, то есть current_user.admin?

Сейчас я работаю этот код почти в каждом методе кажется беспорядочным:

if current_user.admin?
  @product = Product.find(params[:id])
else
  @product = current_user.products.find(params[:id])
end

Есть ли более элегантный / стандартный способ сделать это?

18
задан ideaoforder 18 November 2011 в 17:00
поделиться