我对rails 4 fixtures有一个奇怪的错误。
events.yml:
work:
name: "work"
date_start: 2015-04-21 17:20:18
date_end: 2015-04-21 18:20:18
comment: test comment
admin: egor
users: [egor]
users.yml里:
egor:
email: Egor@123.com
encrypted_password: <%= User.new.send(:password_digest, '12345') %>
first_name: Egor
这些yml的功能很棒。 但是当我尝试加载这个文件时
events_users.yml:
one:
user: egor
event: work
我得到了异常
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'user' in 'field list': INSERT INTO `events_users` (`user`, `event`) VALUES ('egor', 'work')
这是我的EventsUsers.rb模型(它与其他文件类似)
class EventsUsers < ActiveRecord::Base
belongs_to :event
belongs_to :user
end
答案 0 :(得分:1)
模型名称应该是单数,而不是复数。所以我猜测Rails根本无法在User和EventsUsers之间找到一个链接(这会伤害我的头脑甚至类似的那样)。它不知道user
是一个对象引用,因为它不能识别&#34; EventsUsers&#34;作为与用户模型关联的有效模型。
我假设你在这里做has_many :through
关系?我建议将:through
选项设为例如&#34; user_event&#34; (以及名为&#34; UserEvent&#34;的模型),或者更好的是更具描述性的东西,例如&#34; outing&#34; (以及名为&#34; Outing&#34;的模型)。尝试说出您所在域独有的语言。
无论如何,一旦你将模型名称恢复为传统的单数形式,Rails应该知道如何找到它并且应该能够在灯具中自己建立连接。