RubyMine错误:无法找到':用户'关联的关联Rails模型失败

时间:2014-12-07 10:16:07

标签: ruby-on-rails ruby ubuntu rubymine rubymine-7

我正在制作一些教程,但我遇到了一些问题。 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

enter image description here

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

,问题是一样的

3 个答案:

答案 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