用户有很多角色。在routes.rb中,它是:
resources :users do
resources :user_roles
end
在模型用户中,它是:
has_many :user_roles, :dependent => :destroy
accepts_nested_attributes_for :user_roles, :allow_destroy => true
validates_presence_of :user_roles
在模型user_role中,它是:
belongs_to :user
belongs_to :role_definition, :class_name => 'RoleDefinition'
在控制器new中,它有:
@user.user_roles.build
在控制器创建中,有一行:
@user.user_roles << RoleDefinition.where(name: 'customer').first.id
但是它在执行时返回错误:
@user.user_roles << 2 uninitialized constant UserRole
@ user.user_roles在调试之前返回Empty Array
&lt;&lt;赋值:
@user.user_roles=Empty Array
我们错过了上面的代码?
答案 0 :(得分:0)
看起来您对UserRole
模型的声明或关联有疑问:
#app/models/user_role.rb
class UserRole < ActiveRecord::Base
belongs_to :user
end
#app/models/user.rb
class User < ActiveRecord::Base
has_many :user_roles, class_name: "UserRole"
end