我正在制作一些教程,但我遇到了一些问题。 RubyMine找不到':用户'关联失败的关联Rails模型
我正在使用:
- RubyMine 7
- Ruby版本meneger(rvm)
- ruby-1.9.3-p551 [x86_64]
- ruby-2.1.5 [x86_64]
- 导轨4.1.8
- Gem sqllite3
我的模特是:
class Company < ActiveRecord::Base
has_many :users
has_many :projects
end
class Project < ActiveRecord::Base
belongs_to :company
has_many :works
has_many :users, :through => :works
end
class User < ActiveRecord::Base
belongs_to :company
has_many :works
has_many :projects, :through => :works
end
class Work < ActiveRecord::Base
belongs_to :project
belongs_to :user
end
Shema.rb
ActiveRecord::Schema.define(version: 20141207111312) do
create_table "companies", force: true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "projects", force: true do |t|
t.string "name"
t.integer "company_id"
t.integer "default_rate"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", force: true do |t|
t.string "fname"
t.string "lname"
t.integer "company_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
end
add_index "users", ["user_id"], name: "index_users_on_user_id"
create_table "works", force: true do |t|
t.integer "project_id"
t.integer "user_id"
t.datetime "datetimeperformed"
t.decimal "hours", precision: 5, scale: 2
t.datetime "created_at"
t.datetime "updated_at"
end
end
我的代码有问题或者这是一个错误的RubyMine配置吗?
更新
如果我使用Mysql2或sqllite3 gem
答案 0 :(得分:5)
这是常见的RubyMine错误,通常可以通过运行文件/无效缓存&amp;重新启动强>
答案 1 :(得分:3)
看起来问题出在RubyMine编辑器中(bug)! 如果你运行你的应用程序让我们说ruby-2.1.5并且你将RubyMine设置(Ruby SDK和gems)更改为其他版本,然后更改回ruby-2.1.5版本,你将收到此错误。
快速修复是您创建一个新项目并复制粘贴那些文件
答案 2 :(得分:0)
所有人都说它没有找到在当前模型上形成用户关联所需的参考字段。
所以你最好检查一下,如果你已经添加了列来引用这些表的用户,或者你已经这样做了,如果你运行迁移来对数据库进行更改,请再次尝试重新检查。
# example
add_reference :users, :company, index: true
或生成以下迁移:
rails g migration AddCompanyRefToUsers user:references
另一方面,它可能是rubymine的缓存问题。 #我不确定
参考:http://edgeguides.rubyonrails.org/active_record_migrations.html