У меня есть несколько контроллеров, которым требуется правильный пользователь для их действий редактирования / обновления / удаления.Что такое Rails-способ сделать следующее:
В настоящее время в каждом контроллере у меня есть следующий код:
class FooController < ApplicationController
before_filter :correct_user, :only => [:edit, :update, :destroy]
# normal controller code
private
def correct_user
@foo = Foo.find params[:id]
redirect_to some_path unless current_user == @foo.user
end
end
У меня похожий код в 3 контроллерах.Я начал рассказывать об этом помощнику так:
module ApplicationHelper
def correct_user( object, path )
if object.respond_to? :user
redirect_to path unless object.user == current_user
end
end
Но мне интересно, хороший ли это способ это сделать.Какой приемлемый способ решить эту проблему?
Спасибо
РЕДАКТИРОВАТЬ
Правильная проверка пользователя здесь, потому что я хочу убедиться, что это толькоАвтор, который может вносить изменения / дополнения в каждый из объектов.
Чтобы уточнить, объекты будут такими вещами, как Вопросы и Сообщения.Я не хочу использовать что-то вроде CanCan, потому что это слишком просто для чего-то простого.