【问题标题】:Rails app internal links not working, but direct urls areRails 应用程序内部链接不起作用,但直接 url 是
【发布时间】:2014-12-13 22:52:16
【问题描述】:

我有一个在 Ror4 上运行的应用程序,但我的链接似乎无法正常工作。无论我在哪里

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

或在我的代码中类似,单击它不会执行任何操作。但是如果我输入地址 localhost:3000/get-started 它会正确地将我带到我的页面

这是我的路线.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 %> 

也不行。这种行为在我的本地开发环境和服务器上是相同的。 点击直接链接,例如http://www.google.com 工作,也一样:

<%= f.submit "Next" %>

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

任何帮助表示赞赏。谢谢

【问题讨论】:

  • 你能检查生成的 HTML 吗?如果链接在那里显示正确,我怀疑是 JS 问题...
  • 发布此问题后,我发现当我使用 :layout => false 呈现页面时,链接可以正常工作
  • @awendt 如果您对此发表答案,我会给您积分。谢谢提示!!!

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


【解决方案1】:

正如 awendt 在他的评论中指出的那样,这原来是一个 javascript 问题。当我向视图添加 render :layout => false 时,链接确实有效,我可以通过一一包含它们来消除 javascript。

【讨论】:

    【解决方案2】:

    尝试在routes.rb 中设置类似:

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

    然后执行bundle exec rake routes 以查看正确的url 变量(应该是get_started_path

    在 rails 4 中使用 getpost 比在 routes.rb 中使用 match 更好

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      相关资源
      最近更新 更多