使用设计重定向时生成URL错误

时间:2015-06-24 01:47:14

标签: ruby-on-rails devise

由于我安装了devise,因为没有路由匹配,我一直收到ActionController::UrlGenerationError in Devise::Registrations#new错误。该错误在我的application.html

中排在第20行

从第20行开始:

12        <header class="navbar navbar-default" role= "navigation">
13              <div class="navbar-inner">
14              <div class="container">
15              <div id="logo" class= "navbar-brand"> 
 <%=link_to"home",root_path  %></div>
16              <nav class+"collapse navbar-collapse navbar-ex1-collapse">
17                  <ul class="nav navbar-nav pull-right"> 
18        
19                  <li><%= link_to"submit a new tape", new_post_path %></li>
20                  <li><%= link_to"about", {:controller => 'static_pages', :action => 'about'} %></li>
21     

路线档案:

Rails.application.routes.draw do
devise_for :users  
  get 'static_pages/home'
  get 'static_pages/about'
  resources :posts do
    member do 
      put "like" , to: "posts#upvote"
      put "dislike" , to: "posts#downvote"
    end
  end


  root 'posts#index'

2 个答案:

答案 0 :(得分:0)

您的注册#New action似乎没有相关的控制器操作。我建议您在routes.rb文件中明确设置控制器,方法是在路由声明中附加相应的选项。

Here's a link to the proper Devise documentation

另外,请确保正确路由静态页面。我假设您希望static_pages路由看起来更像:

get 'home', to: 'static_pages#index'
... 

答案 1 :(得分:0)

对于任何可能遇到类似问题的人来说,我是做了什么来解决它的。出于某种原因,我的application.html中的第20行(请参阅上面的帖子)导致devise出现问题。将其更改为此后问题就消失了:

<li><%= link_to"about", about_path %></li> 

简单修复!