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:in
setup’
/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?