Polączenie modeli

Cześć moje pytanie zwiazane jest z migracją .

Nie mogę stworzyć migracji. rake db:migrate

Robię tak:
Chce połączyć modele Article z Category

w RubyMien korzystam z generatora, alt+cmd+G , migration i wpisuje połączone kolumny articles_categories

uzupelniam kolumny które chce polączyc
class ArticlesCategories < ActiveRecord::Migration
def change
create_table :articles_categories do |t|
t.integer :article_id
t.integer :category_id

  t.timestamps
  end

end
end

W modelach dodaje pola :
class Article < ActiveRecord::Base
has_and_belongs_to_many :categories, join_table: “articles_categories”
end
class Category < ActiveRecord::Base
has_and_belongs_to_many :articles, join_table: “articles_categories”
end

Plik schema.rb wygląda tak:

ActiveRecord::Schema.define(version: 20141125093637) do

create_table “articles”, force: true do |t|
t.string “name”
t.text “description”
t.string “author”
t.string “image_uid”
t.string “videos”
t.integer “visits_count”, default: 0
t.datetime “created_at”
t.datetime “updated_at”
end

create_table “banners”, force: true do |t|
t.string “image_uid”
t.datetime “created_at”
t.datetime “updated_at”
end

create_table “categories”, force: true do |t|
t.string “name”
t.text “description”
t.string “image_uid”
t.datetime “created_at”
t.datetime “updated_at”
end

create_table “contacts”, force: true do |t|
t.string “name”, null: false
t.string “surname”
t.string “business”
t.string “email”
t.string “mobile”
t.text “description”
t.datetime “created_at”
t.datetime “updated_at”
end

create_table “pages”, force: true do |t|
t.string “name”, null: false
t.text “description”
t.string “image_uid”
t.integer “visible”
t.datetime “created_at”
t.datetime “updated_at”
end

create_table “tags”, force: true do |t|
t.string “name”, null: false
t.datetime “created_at”
t.datetime “updated_at”
end

end

wyrzucam plik : schema.rb
i wyrzucam plik database.yml

Nie-dzialają:
rake db:drop
rake db:create
rake db:migrate

a komenda rake db:migrate w konsoli daje tak kod:

pro:api tomekd$ rake db:migrate
rake aborted!
Gem::LoadError: You have already activated rake 10.4.0, but your Gemfile requires rake 10.3.2. Prepending bundle exec to your command may solve this.
/Library/Ruby/Gems/2.0.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:34:in block in setup' /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:19:insetup’
/Library/Ruby/Gems/2.0.0/gems/bundler-1.6.2/lib/bundler.rb:120:in setup' /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.2/lib/bundler/setup.rb:7:in<top (required)>’
/Thomas/Hello_Web/autotech2/config/boot.rb:4:in <top (required)>' /Thomas/Hello_Web/autotech2/config/application.rb:1:in<top (required)>’
/Thomas/Hello_Web/autotech2/Rakefile:4:in `<top (required)>’
(See full trace by running task with --trace)

Co może być nie tak. Wcześniej wyrzucalem schema.rb i database.yml i tworzyla sie nowa BD i schema? W czym może być problem?

Problem rozwiązany .
Wystarczylo dać bundle update :smile:

Wszystkie komendy pochodzące od gemów używanych w aplikacji odpalaj przez bundle exec command (lub bin/command jeśli użyto tzw. bin stuba). To, że aktualizacja gema naprawiła błąd jest tylko złudzeniem. Jeśli pracujesz z wieloma osobami w projekcie to one mogą mieć wciąż ten sam problem.

Staraj się nie używać konsoli w RubyMine, lepiej używać systemową konsolę. Tą konsolą RubyMine robi tylko wiele szkody developerom.

W zasadzie co należy zrobić w pierwszej kolejności, napisane miałeś w komunikacie.

Tak i to zrobilem.