/ / add_index error [Ruby on Rails] - ruby-on-rails, database, ruby-on-rails-3.2, rails-migrations

add_index error [Ruby on Rails] - ruby-on-rails, database, ruby-on-rails-3.2, rails-migrations

Próbuję stworzyć "jeden do wielu relacji między właścicielem i własnością", ale nie wiem, dlaczego otrzymuję ten błąd, po wygenerowaniu modelu próbowałem add_index przed uruchomieniem rake db: migracja ale coś poszło nie tak Uwaga: Po raz pierwszy tworzymy relację między dwiema tabelami używając ruby ​​na szynach i szukałem w przewodniku rubyonrails. Nie znalazłem odpowiedzi

Mój plik migracji:

class CreateProperties < ActiveRecord::Migration
def change
create_table :properties do |t|
t.string :p_street
t.string :p_city
t.string :postcode
t.string :type
t.integer :rooms
t.integer :rent
t.integer :owner_id

t.timestamps
end
add_index :owner_id
end
end

Pojawia się błąd:

==  CreateProperties: migrating ===============================================
-- create_table(:properties)
-> 0.0712s
-- add_index(:owner_id)
rake aborted!
An error has occurred, this and all later migrations canceled:

wrong number of arguments (1 for 2)/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/schema_statements.rb:350:in `add_ind
ex"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:466:in `block in method_missing"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:438:in `block in say_with_time"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:438:in `say_with_time"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:458:in `method_missing"
/root/rails_project/dream_home/db/migrate/20130503044654_create_properties.rb:14:in `change"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:407:in `block (2 levels) in migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:407:in `block in migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:129:in `with_connection"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:389:in `migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:528:in `migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:720:in `block (2 levels) in migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:775:in `call"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:775:in `block in ddl_transaction"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/transactions.rb:208:in `transaction"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:775:in `ddl_transaction"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:719:in `block in migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:700:in `each"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:700:in `migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:570:in `up"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/migration.rb:551:in `migrate"
/var/lib/gems/1.9.2/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:193:in `block (2 levels) in <top (required)>"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/task.rb:246:in `call"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/task.rb:241:in `each"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:101:in `each"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling"
/var/lib/gems/1.9.2/gems/rake-10.0.4/lib/rake/application.rb:70:in `run"
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

Odpowiedzi:

0 dla odpowiedzi № 1

add_index potrzebuje nazwy tabeli

add_index :properties, :owner_id


2 dla odpowiedzi nr 2

Musisz podać nazwę tabeli w argumentach. Próbować add_index (:properties,:owner_id)