Tatsoft.ru (logo)

Подробности

Расширяем has_many :through 

Имеем стандартные модели для плагина acl_system Account, AccoutRole, AccountRoleRelationship

Хотим получить приятный интерфейс для управления ролями.


@account.roles.grant(@role1, @role2)
@account.roles.revoke(@role)
@account.roles.revoke_all

Получим вот такой вот замечательный код.


class Account < ActiveRecord::Base
  module Roles
    def grant(*roles)
      self < @owner.id)
       reload
    end
  end

  has_many :roles_relationships,
    :class_name => 'AccountRoleRelationship',
    :dependent  => :destroy

  has_many :roles,
    :through => :roles_relationships,
    :uniq => true do
      include Roles
  end

end


class AccountRole  'AccountRoleRelationship',
    :dependent  => :destroy

  has_many :accounts,
    :through => :account_relationships
end


class AccountRoleRelationship  'AccountRole',
    :foreign_key => 'account_role_id'

  validates_presence_of :account_id, :account_role_id
end

Нужно отметить, что в Edge Rails исправлен баг , о котором писал Равиль, но почему то не исправлен баг с destroy_all

Комментарии

(Комментарий — 2:35 пп, Фев 11 )

Артем Голубев:

Лаконично. Ни 1 слова!
гы-гы

(Комментарий — 6:25 дп, Март 26 )

Оставить комментарий



Публикации по категориям

Самые читаемые

  • 4,343 прочтений: возможно самый отрицательный подкаст про RoR (далее)
  • 3,953 прочтений: что такое wordpress (далее)
  • 3,270 прочтений: Впервые в России конференция в формате BarCamp (далее)
  • 3,107 прочтений: 9 ошибок менеджера или почему задерживаются проекты (далее)
  • 3,059 прочтений: Про нас написали Отцы! :) (далее)
  • 2,923 прочтений: Конференция - взгляд из-за кулис (далее)
  • 2,870 прочтений: Чем плох MySQL (далее)
  • 2,475 прочтений: Автоматическая система синхронизация файлов между серверами (далее)
  • 2,025 прочтений: jQuery – Javascript нового поколения (далее)
  • 2,012 прочтений: Перепись казанских веб-студий. Часть 1. (далее)

Добавление в рейтинги

Bobrdobr Memori Google YahooMyWeb Digg Technorati Delicious
количество читателей онлайн и всего Рекомендовать tatsoft.ru в МойКруг.ру

Активные участники

 5 Users Online из них сейчас на сайте

Облако тэгов