acl9 has_many через реализацию - PullRequest
3 голосов
/ 14 июля 2011

Я получил следующее предупреждение об устаревании на консоли rails:

DEPRECATION WARNING: Having additional attributes on the join table of a 
has_and_belongs_to_many association is deprecated and will be removed in Rails 3.1. 
Please use a has_many :through association instead.

Проблема связана с таблицей roles_users, которую я создал после пошагового интерактивного учебного руководства.

Как мне реализовать has_many :through ассоциацию для acl9?Это вне моего понимания, тем более что модели user и role каждая используют только вспомогательные методы, а не фактические has_and_belongs_to_many.

Вот как они выглядят:

class User < ActiveRecord::Base
  acts_as_authentic
  acts_as_authorization_subject  :association_name => :roles
end

class Role < ActiveRecord::Base
  acts_as_authorization_role
end

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

Ответ был позже обсужден в комментариях к этой проблеме GitHub.

Модель пользователя:

acts_as_authorization_subject :association_name => :roles, :join_table_name => :roles_users

Ролевая модель:

acts_as_authorization_role :join_table_name => :roles_users
0 голосов
/ 23 января 2015

Кроме того, для записи, Rails решил не осуждать опцию :join_table для habtm, так что это ушло с последующим выпуском патчей Rails - т.е.вам не понадобятся опции, упомянутые в выпуске, если вы просто обновите свой Rails.

...