Я довольно новичок в Ruby On Rails и сейчас делаю простое приложение. В этом приложении пользователь может создавать множество элементов, а я использую devise для аутентификации. Конечно, я хочу убедиться, что вы являетесь владельцем, чтобы удалять предметы (команды, игроки и т. Д.), И то, как я это делаю сейчас:
def destroy
@team = Team.find(params[:id])
if current_user.id == @team.user_id
@team.destroy
redirect_to(teams_url, :notice => 'The team was deleted.')
else
redirect_to root_path
end
end
Это лучший способ? Я думал о том, чтобы поместить метод в модель, но я не уверен, что могу получить доступ к current_user оттуда. Я также думал о before_filer, что-то вроде:
before_filter :check_ownership, :only => [:destroy, :update]
В этом случае и если я хочу закодировать только один метод для всех объектов (все объекты, к которым это относится, имеют поле "user_id")