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