Я использую 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
Есть ли более элегантный / стандартный способ сделать это?