2014-12-07 5 views
1

Я работаю над некоторым учебником, и у меня возникают некоторые проблемы. RubyMine не может найти связанный Rails модели для ': пользователей ассоциации не удалосьОшибка RubyMine: не удалось найти связанную с Rails модель для ассоциаций ': пользователей.

Я использую:
- RubyMine 7
- рубин версия Meneger (РВМ)
- рубин-1.9.3-P551 [x86_64 ]
- рубиново-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?

UPDATE:
Проблема такая же, если я использую mysql2 или sqllite3 камень

+0

проверить мой ответ. если у вас нет этих ссылок для ассоциации. Вы можете сделать это после моего ответа. – Rubyrider

+0

Также, пожалуйста, добавьте файл schema.rb в свой вопрос. – Rubyrider

+0

Я обновил вопрос –

ответ

2

Похоже, проблема в редакторе RubyMine (ошибка)! Если вы запустите приложение, скажем, на ruby-2.1.5, и вы измените настройку RubyMine (Ruby SDK и gems) на другую версию, а затем вернитесь к версии ruby-2.1.5, вы получите эту ошибку.

Быстрого решения является то, что вы создаете новый проект и копировать вставить эти файлы там

+1

Спасибо за подсказку. Я удалил каталог .idea из проекта, а затем снова добавил проект в RubyMine. Еще одна вещь, которую стоит попробовать - добавить префикс «ruby-» в файл .ruby-версии, чтобы gemset можно было обнаружить автоматически. – Kotu

0

Его все говорят, что его не нашли ссылочные поля, необходимые для формирования пользователи объединения на текущей модели.

Так что вам лучше проверить, если вы уже добавили столбцы для ссылки на эти таблицы или если вы уже это сделали, попробуйте еще раз проверить, если вы выполните миграцию, чтобы внести изменения в базу данных.

# example 
add_reference :users, :company, index: true 

или произвести следующую миграцию:

rails g migration AddCompanyRefToUsers user:references 

На другой стороне, это может быть проблема кэширования RubyMine в. # Я не уверен, что

Ссылка: http://edgeguides.rubyonrails.org/active_record_migrations.html

+0

Извините, но это не исправило проблему ... thx за помощью в любом случае –

2

Это общая ошибка RubyMine и часто может быть решено при запуске File/Invalidate кэширует & Restart.