Ruby on rails 创建用户时,模型中的before_create方法不起作用-Rails4 我不确定为什么我的代码不起作用-非常感谢您的帮助 我想做的是:创建用户时,将用户分配给角色“客户端”和组“客户端组” 问题:我不确定为什么我在创建之前的操作不起作用。有人能给我提个建议吗?
我收到错误消息:Ruby on rails 创建用户时,模型中的before_create方法不起作用-Rails4 我不确定为什么我的代码不起作用-非常感谢您的帮助 我想做的是:创建用户时,将用户分配给角色“客户端”和组“客户端组” 问题:我不确定为什么我在创建之前的操作不起作用。有人能给我提个建议吗?,ruby-on-rails,Ruby On Rails,我收到错误消息: NoMethodError - undefined method `name' for nil:NilClass: 我发现这很奇怪,因为当我在终端中检查我的分类时,一切似乎都很好 user.rb category_role.rb 类别管理组.rb seed.rb 模式 你的意思可能是这样的: def assign_user_to_role_and_group self.category_role = CategoryRole.where(name: 'Client').
NoMethodError - undefined method `name' for nil:NilClass:
我发现这很奇怪,因为当我在终端中检查我的分类时,一切似乎都很好
user.rb
category_role.rb
类别管理组.rb
seed.rb
模式
你的意思可能是这样的:
def assign_user_to_role_and_group
self.category_role = CategoryRole.where(name: 'Client').first
self.category_managementgroup = CategoryManagementgroup.where(name: 'Client Group').first
end
也就是说,将角色和组实际分配给各个类的实际对象。是否有任何异常?如果我理解正确的话,
self.category\u角色
和self.category\u管理组
在创建之前将在您的中为空
sergio您真了不起!!!-工作完美,我不会想出它可能看起来那么简单-谢谢!!!
has_many :users
has_many :users
CategoryRole.delete_all
cr01 = CategoryRole.create!(name:'Admin')
cr02 = CategoryRole.create!(name:'Primary Admin')
cr03 = CategoryRole.create!(name:'Client')
CategoryManagementgroup.delete_all
cmr01 = CategoryManagementgroup.create!(name:'Administration Group')
cmr02 = CategoryManagementgroup.create!(name:'Client Group')
cmr03 = CategoryManagementgroup.create!(name:'Management Group')
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
t.integer "category_role_id"
t.integer "category_managementgroup_id"
end
create_table "category_roles", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "category_managementgroups", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
def assign_user_to_role_and_group
self.category_role = CategoryRole.where(name: 'Client').first
self.category_managementgroup = CategoryManagementgroup.where(name: 'Client Group').first
end