Я использую Rails 3 с Devise для auth пользователя. Скажем, у меня есть модель User, с включенным Devise и моделью продукта, и что пользователь has_many Products.
В моем контроллере продуктов я бы хотел, чтобы мой метод find был ограничен областью current_user, т.е.
@product = current_user.products.find(params[:id])
если пользователь не является пользователем admin, т.е. current_user.admin?
Сейчас я запускаю этот код почти по каждому методу, который кажется беспорядочным:
if current_user.admin?
@product = Product.find(params[:id])
else
@product = current_user.products.find(params[:id])
end
Есть ли более элегантный/стандартный способ сделать это?