ActiveRecord::语句无效:Mysql::错误:未知列';用户id';在';字段列表';红宝石固定装置

ActiveRecord::语句无效:Mysql::错误:未知列';用户id';在';字段列表';红宝石固定装置,mysql,ruby-on-rails,ruby-on-rails-4,activerecord,fixtures,Mysql,Ruby On Rails,Ruby On Rails 4,Activerecord,Fixtures,我尝试运行测试,但失败如下 [user1 project]$ rake test DEPRECATION WARNING: String based terminators are deprecated, please use a lambda. (called from included at /home/.gem/ruby/2.1.3/bundler/gems/authlogic-09163c7d2a9b/lib/authlogic/session/callbacks.rb:66) DEP

我尝试运行测试,但失败如下

[user1 project]$  rake test
DEPRECATION WARNING: String based terminators are deprecated, please use a lambda. (called from included at /home/.gem/ruby/2.1.3/bundler/gems/authlogic-09163c7d2a9b/lib/authlogic/session/callbacks.rb:66)
DEPRECATION WARNING: String based terminators are deprecated, please use a lambda. (called from included at /home/.gem/ruby/2.1.3/bundler/gems/authlogic-09163c7d2a9b/lib/authlogic/session/callbacks.rb:67)
Started

ERROR["test_login_and_access_bookmarks/managing_bookmarks", BookmarksTest, 0.120519093]
 test_login_and_access_bookmarks/managing_bookmarks#BookmarksTest (0.12s)
ActiveRecord::StatementInvalid:         ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'user_id' in 'field list': INSERT INTO `roles` (`id`, `user_id`, `created_at`, `updated_at`) VALUES (4, 2, '2015-03-15 17:54:24', '2015-03-15 17:54:24')


  1/1: [=========================================================================================================] 100% Time: 00:00:00, Time: 00:00:00

Finished in 0.12271s
1 tests, 0 assertions, 0 failures, 1 errors, 0 skips
[user1 project]$  
我有两个表users和roles以及两个fixture,分别名为
users.yml
roles.yml

users.yml的内容:

# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html


user2:
  name: user2
  id: 2
roles.yml的内容:

user2_1:
  id: 4
  user_id: 2
这里有什么问题?我正在尝试将users表与角色链接,建立一种关系,以便users表中的-user2在roles表中具有角色id 4。如有任何帮助/建议,将不胜感激。谢谢

我检查了一些像这样的stackoverflow帖子,但没有找到有效的答案

角色表的结构:

mysql> describe roles
    -> ;
+-----------------+--------------
| Field           | Type         
+-----------------+--------------
| id              | int(11)      
| name            | varchar(255) 
| parent_id       | int(11)      
| description     | varchar(255) 
| default_page_id | int(11)      
| cache           | text         
| created_at      | datetime     
| updated_at      | datetime     
+-----------------+--------------

roles
表中没有
user\u id
字段;很可能您正试图在此处指定
parent\u id

实现装置中用户和角色之间关联的最佳方法如下:

# users.yml
user2:
  name: User 2

# roles.yml
role2:
  name: Second role
  parent: user2 (User)
注意:在
角色中设置
parent:user2(User)
。yml
使
role2
对象使用
user2
作为父对象,并且由于对象类型不同(
parent
vs
User
),因此应包含
(User)
字符串以表示多态关系

请仔细阅读本页,熟悉设备