2015-12-30 5 views
1

Привет я имею проблему, когда я пытаюсь сделать bundle exec rake db:migrate я никогда не имел эту проблему, и это кодНе найти правильный маршрут (маршруты)

bundle exec rake db:migraterake aborted! 
ArgumentError: Missing :controller key on routes definition, please check your routes. 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:275:in `check_part' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:255:in `check_controller_and_action' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:178:in `normalize_options!' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:100:in `initialize' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:78:in `new' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:78:in `build' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:1559:in `add_route' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:1536:in `decomposed_match' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:1517:in `block in match' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:1507:in `each' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:1507:in `match' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:689:in `map_method' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/mapper.rb:650:in `get' 
/home/ubuntu/workspace/sample_app/config/routes.rb:3:in `block in <top (required)>' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/route_set.rb:432:in `instance_exec' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/route_set.rb:432:in `eval_block' 
/usr/local/rvm/gems/ruby-2.2.1/gems/actionpack-4.2.2/lib/action_dispatch/routing/route_set.rb:410:in `draw' 
/home/ubuntu/workspace/sample_app/config/routes.rb:1:in `<top (required)>' 
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:268:in `load' 
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:268:in `block in load' 
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:240:in `load_dependency' 
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:268:in `load' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/routes_reloader.rb:40:in `block in load_paths' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/routes_reloader.rb:40:in `each' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/routes_reloader.rb:40:in `load_paths' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/routes_reloader.rb:16:in `reload!' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/routes_reloader.rb:26:in `block in updater' 
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/file_update_checker.rb:75:in `call' 
/usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/file_update_checker.rb:75:in `execute' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/routes_reloader.rb:27:in `updater' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/routes_reloader.rb:7:in `execute_if_updated' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application/finisher.rb:69:in `block in <module:Finisher>' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/initializable.rb:30:in `instance_exec' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/initializable.rb:30:in `run' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/initializable.rb:55:in `block in run_initializers' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/initializable.rb:54:in `run_initializers' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application.rb:352:in `initialize!' 
/home/ubuntu/workspace/sample_app/config/environment.rb:5:in `<top (required)>' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application.rb:328:in `require' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application.rb:328:in `require_environment!' 
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/application.rb:457:in `block in run_tasks_blocks' 
Tasks: TOP => db:migrate => environment 
(See full trace by running task with --trace) 

Это первая часть я сделал rails generate controller AccountActivations \ edit --no-test-framework

Тогда routes.rb

Rails.application.routes.draw do 

    get 'account_activations/ edit' 

    get 'account_activation/ edit' 

    get 'sessions/new' 

    root     'static_pages#home' 
    get 'help'  => 'static_pages#help' 
    get 'about'  => 'static_pages#about' 
    get 'contact'  => 'static_pages#contact' 
    get 'signup'  => 'users#new' 
    get 'login'  => 'sessions#new' 
    post 'login'  => 'sessions#create' 
    delete 'logout' => 'sessions#destroy' 
    resources :users 
    resources :account_activations, only: [:edit] 
end 

тогда я запускаю этот код:

$ rails generate migration add_activation_to_users \ 
> activation_digest:string activated:boolean activated_at:datetime 

я изменить этот новый файл

class AddActivationToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :activation_digest, :string 
    add_column :users, :activated, :boolean, default: false 
    add_column :users, :activated_at, :datetime 
end end 

и, наконец, bundle exec rake db:migrate Тогда я получаю сообщение об ошибке, не кто видит проблему? заранее спасибо! Кстати, это глава 10 ruby ​​on rails tutorial.

ответ

1

help и about маршрут отсутствует контроллер (необязательно действие).

Также отсутствует маршрут root, его варианты.

+0

Извините, это маршрут –

+0

Почему пространство в 'get 'account_activations/edit'' после косой черты? – Babar

+0

просто для продолжения в следующей строке, которую вы набираете '/', и нажмите Enter, и он будет продолжать –

0

Ваш routes.rb неправ.

Rails.application.routes.draw do 

    get 'account_activations/edit' 

    get 'account_activation/edit' 

    get 'sessions/new' 

    root :to => 'static_pages#home' 

    get 'help'  => 'static_pages#help' 
    get 'about'  => 'static_pages#about' 
    get 'contact'  => 'static_pages#contact' 
    get 'signup'  => 'users#new' 
    get 'login'  => 'sessions#new' 
    post 'login'  => 'sessions#create' 
    delete 'logout' => 'sessions#destroy' 
    resources :users 
    resources :account_activations, only: [:edit] 

end 
+0

спасибо большое чувак! –

0

Возможно только удаление этих двух линий будет исправить:

get 'account_activations/ edit' 

get 'account_activation/ edit' 

Вы определили этот маршрут дважды, здесь и в ресурсах.

+0

спасибо, что это было пространство между/& edit. Мой плохой –

+0

а также что! спасибо: D –

0

Я думаю, вы могли бы использовать

resources :account_activations 

неправильно ... ресурсы должны использоваться на моделях, и в этом случае его контроллер -> который является то, что ваш журнал жалуется. Вот некоторые ссылки из вас: http://guides.rubyonrails.org/routing.html#resources-on-the-web

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

Возможно запустить

rake routes 

, чтобы увидеть, какие маршруты у вас есть в наличии, и если «ресурсы: account_activations» даже сделав редактирования маршрута.

+0

Это было более просто, чем это (но спасибо человеку :) Здесь вы получите 'account_activations/edit' i left и space, как это 'account_activations/edit', и ничего не работало вообще. Очевидно, что миграция не будет работать нормально. Спасибо :) –

+0

typo 1, human 0 :) – mhz