acl9 has_many通过实现

时间:2011-07-14 16:47:06

标签: ruby-on-rails-3 associations has-many-through acl9

我在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表。

如何为acl9实现has_many :through关联?它超出了我的范围,特别是因为userrole模型都只使用辅助方法而没有实际的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 个答案:

答案 0 :(得分:2)

后来在对GitHub问题的评论中讨论了这个答案。

用户模型:

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

角色模型:

acts_as_authorization_role :join_table_name => :roles_users

答案 1 :(得分:0)

另外,为了记录,Rails决定不再为habtm弃用:join_table选项,所以随着Rails的后续补丁版本的消失 - 即。如果你只是升级你的Rails,你不应该需要问题中提到的选项。