ошибка с устройством в рубине на рельсах - PullRequest
3 голосов
/ 02 октября 2011

Итак, я никогда раньше не использовал devise и пытаюсь реализовать его в своей программе через http://railscasts.com/episodes/209-introducing-devise. Я установил его и все слово в слово, как этот парень, а затем, когда я пытаюсь перейти на http://localhost:3000/users/sign_up, Я получаю эту ошибку:

 Routing Error

 No route matches [GET] "/users/sign_up"

вот что я получаю, когда делаю маршрут рейка:

new_user_session GET    /users/sign_in(.:format)              {:action=>"new", :controller=>"devise/sessions"}
    user_session POST   /users/sign_in(.:format)              {:action=>"create", :controller=>"devise/sessions"}
 destroy_user_session GET    /users/sign_out(.:format)             {:action=>"destroy", :controller=>"devise/sessions"}
        password POST   /users/password(.:format)             {:action=>"create", :controller=>"devise/passwords"}
    new_password GET    /users/password/new(.:format)         {:action=>"new", :controller=>"devise/passwords"}
   edit_password GET    /users/password/edit(.:format)        {:action=>"edit", :controller=>"devise/passwords"}
                 PUT    /users/password(.:format)             {:action=>"update", :controller=>"devise/passwords"}
                 POST   /users/registration(.:format)         {:action=>"create", :controller=>"devise/registrations"}
             new GET    /users/registration/sign_up(.:format) {:action=>"new", :controller=>"devise/registrations"}
            edit GET    /users/registration/edit(.:format)    {:action=>"edit", :controller=>"devise/registrations"}
                 PUT    /users/registration(.:format)         {:action=>"update", :controller=>"devise/registrations"}
                 DELETE /users/registration(.:format)         {:action=>"destroy", :controller=>"devise/registrations"}
       vote_post POST   /posts/:id/vote(.:format)             {:action=>"vote", :controller=>"posts"}
           posts GET    /posts(.:format)                      {:action=>"index", :controller=>"posts"}
                 POST   /posts(.:format)                      {:action=>"create", :controller=>"posts"}
        new_post GET    /posts/new(.:format)                  {:action=>"new", :controller=>"posts"}
       edit_post GET    /posts/:id/edit(.:format)             {:action=>"edit", :controller=>"posts"}
            post GET    /posts/:id(.:format)                  {:action=>"show", :controller=>"posts"}
                 PUT    /posts/:id(.:format)                  {:action=>"update", :controller=>"posts"}
                 DELETE /posts/:id(.:format)                  {:action=>"destroy", :controller=>"posts"}
            root        /                                     {:controller=>"users", :action=>"index"}

Если вы смотрите видео, парень просто может перейти на этот веб-адрес, и он просто работает. Я заметил, что есть [GET] /users/registration/sign_up(.:format), но нет [GET] / users / sign_up, как у парня в видео. Что-то мне не хватает?

приписка

это ошибка, которую я получаю при попытке перейти на один из маршрутов, перечисленных выше (user / sign_in):

 NoMethodError in Devise/registrations#new
 Showing /Users/davidfleischhauer/.rvm/gems/ruby-1.9.2-p290/gems/devise- 1.1.rc0/app/views/devise/registrations/new.html.erb where line #3 raised:

 undefined method `user_registration_path' for #<#<Class:0x007f85eafec758>:0x007f85eaf77ed0>

Ответы [ 4 ]

2 голосов
/ 02 октября 2011

Вы должны использовать new_user_registration_path, чтобы создать ссылку на страницу регистрации.Вы должны использовать new_user_session_path для создания ссылки на sign_in.

1 голос
/ 02 октября 2011

Имейте в виду, что видео более года назад:)

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

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

0 голосов
/ 08 апреля 2012

добавить к route.rb это:

devise_for :users do

  get'users/sign_out'=>'devise/sessions#destroy'

end

это для sign_out

для sign_up перейдите на config/initializers/secret_token.rb и скопируйте строку: config.secret_token ='...' и вставьте ее в config / aplication.rb

0 голосов
/ 02 октября 2011

Я пытаюсь выяснить, почему вы используете Devise версии 1.1rc0, а не последний доступный гем, который является 1.4.7?У меня есть несколько приложений, работающих под управлением этой последней версии, в которой путь sign_up работает просто отлично.Я бы порекомендовал обновить его до последней версии и попробовать еще раз.Помимо этого, я могу думать только о проблемах, которые могут быть вызваны чем-то из вашего routes.rb файла или если вы пытаетесь переопределить контроллер регистрации Devise.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...