3

我在 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 实现关联?这超出了我的范围,特别是因为userandrole模型每个都只使用辅助方法而没有实际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
4

2 回答 2

2

稍后在此 GitHub 问题的评论中讨论了答案。

用户型号:

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

好榜样:

acts_as_authorization_role :join_table_name => :roles_users
于 2012-03-07T23:50:12.407 回答
0

此外,为了记录,Rails 决定:join_table毕竟不弃用 habtm 的选项,所以这在 Rails 的后续补丁版本中消失了 - 即。如果您只是升级 Rails,则不需要问题中提到的选项。

于 2015-01-22T21:08:51.710 回答