Ограничение Редактировать и Удалить - PullRequest
0 голосов
/ 29 марта 2010

Я хочу иметь возможность редактировать и удалять ресурсы самостоятельно, но не позволяю пользователям приложения делать это.

Есть ли простой способ сделать это в Rails?

Неполным решением было бы просто удалить кнопки «удалить» и «редактировать» из представления индекса, но это не лишает их возможности делать это через прямые запросы HTTP.

Запуск Rails 2.2.2 и ruby ​​1.8.7

Ответы [ 3 ]

3 голосов
/ 29 марта 2010

Добавьте before_filter в ваш controller, как показано ниже:

class PostsController < ApplicationController

  before_filter :require_god, :only => [:edit, :update, :destroy]

private  
  def require_god
    unless current_user.id == (@@god ||= User.find_by_login("phleet")).id
      flash[:notice] = "You don't have access to this page"
      redirect_to root_path
      return false
    end
  end

end
1 голос
/ 29 марта 2010

Я бы порекомендовал CanCan . Это действительно просто, вам нужен только файл enable.rb, чтобы определить, что пользователю запрещено делать.

0 голосов
/ 29 марта 2010

Взгляните на active_scaffold, admin_data и typus (все доступно на github). Все они являются плагинами, которые упрощают создание административной части таким образом, чтобы вы могли легко отделить администрирование от взаимодействия с пользователем. Лично мне нравится typus, но он требует, чтобы у вас была таблица typus_users, которая отделена от таблиц других пользователей, что может не подходить для всех.

С другой стороны, если вы не хотите ничего сложного или предпочитаете создавать его самостоятельно с нуля, простой before_filter должен помочь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...