【发布时间】:2013-06-26 15:26:14
【问题描述】:
我的模型中有以下关系:
- security_user.rb
has_many :security_users_roles_to_users has_many :security_users_roles, through: :security_users_roles_to_users accepts_nested_attributes_for :security_users_roles
- security_users_roles_to_users.rb
belongs_to :security_user
属于_to :security_users_role
- security_users_roles.rb
has_many :security_users_roles_to_users
has_many :security_users,通过: :security_users_roles_to_users
目的是在用户和角色模型之间创建多对多关系。
创建新用户时,我想将其设置为默认角色(例如用户)。因此,在我的 security_users_controller.rb 中,在 create 操作中我有:
@security_user = SecurityUser.new(params[:security_user])
@security_user.security_users_roles.role = 'user'
但我收到以下错误:undefined method `role=' for ...
为什么我无法以上述方式访问属性?
注意:我没有传递来自用户角色的任何信息。
【问题讨论】:
标签: ruby-on-rails-3 controller nested-attributes