ruby-on-rails - 带有设计和错误错误的Rails STI

标签 ruby-on-rails devise runtime-error sti rolify

我正在使用Devise和Rolify开发Rails 3.2.13应用程序,我需要具有3种用户类型,如下所示:

class User < ActiveRecord::Base
  rolify
  ...
end

class UserTypeOne < User
  ....
end

class UserTypeTwo < User
  ....
end

class UserTypeThree < User
  ....
end

当我尝试为数据库添加种子时,可以正常创建用户,但是尝试向其中任何一个用户添加角色时都会出错:
user = UserTypeOne.find_or_create_by_email :name => 'User one', :email => 'userone@test.com', :password => 'userone', :password_confirmation => 'userone'
user.confirm!
user.add_role :admin

rake aborted!
undefined method `find_or_create_by' for nil:NilClass

但是用户插入正确...我在做什么错?

提前致谢!

最佳答案

尝试添加

self.adapter = User.adapter 

给每个继承的类。

例:
class UserTypeOne < User
  self.adapter = User.adapter 
  ....
end

这对我有用。

关于ruby-on-rails - 带有设计和错误错误的Rails STI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15877424/

相关文章:

ruby-on-rails - 如何发送两封不同的电子邮件以进行设计确认和设计再确认?

ruby-on-rails - 尝试使用 Capybara、Cucumber、RSpec 和 Devise 登录时重定向到 example.com

android - 如何绑定(bind) startActivity() 需要 FLAG_ACTIVITY_NEW_TASK?

vba - 使用 Trim 时出现运行时错误 13

c++ - 数组问题 : Stack around the variable 'arr' was corrupted

ruby-on-rails - 在 Rails 中,如果不使用 Bundler,将 gem 卡住到项目中的最首选方法是什么?

ruby-on-rails - Rails 可选关联查询

ruby-on-rails - 如何在 Rails 中获取 cookie 过期时间?

ruby-on-rails - 从多对多连接表访问对象 - RAILS

ruby-on-rails - 如何将Devise的current_user传递为user_id?