Rails app内部链接不起作用,但直接网址是

时间:2014-10-18 13:59:12

标签: ruby-on-rails ruby-on-rails-4 hyperlink

我在Ror4上运行了一个应用程序,但似乎没有让我的链接正常工作。无论我有什么

<%= link_to "Get Started", get_started_path %> 

或类似我的代码,点击它不会做任何事情。但如果我键入地址localhost:3000 / get-started,它会正确地将我带到我的页面

这是我的routes.rb

 match '/get-started' => 'static#get-started', via: 'get'
 root 'static#index'
 match '/thank-you' => 'static#thank-you', via: 'get'
 match '/how-it-works' => 'static#how-it-works', via: 'get'
match '/get-started' => 'static#get-started', via: 'get'
match '/get-newsletter' => 'static#newsletter-signup', via: 'get'
match '/privacy-policy' => 'static#privacy-policy', via: 'get'
match '/terms-and-conditions' => 'static#terms-and-conditions', via: 'get'

所有链接以及由例如链接生成的链接的问题都是相同的。设计。这让我相信它不是控制器问题。点击

<%= link_to "Logout", destroy_user_session_path, method: :delete %> 

也行不通。这个befaviour在我的本地开发环境和服务器上都是一样的。 点击直接链接,例如http://www.google.com可以工作,也可以这样做:

<%= f.submit "Next" %>

其实不知道问题是什么。开发控制台不会抛出错误,rails控制台也不会抛出错误。

任何帮助表示赞赏。感谢

2 个答案:

答案 0 :(得分:0)

正如awendt在他的评论中指出的那样,结果证明这是一个javascript问题。当我添加一个render:layout =&gt;错误的视图链接确实有效,我可以通过逐个包含它来消除javascript。

答案 1 :(得分:0)

尝试设置routes.rb之类的内容:

get '/get-started', to: 'static#get-started', as: 'get_started'

然后执行bundle exec rake routes以查看正确的网址变量(应为get_started_path

在rails 4中,最好在get

中使用postmatch而不是routes.rb