【问题标题】:Routing Static Pages in Rails在 Rails 中路由静态页面
【发布时间】:2019-08-21 11:59:30
【问题描述】:

我在弄清楚如何在 rails 4 中路由静态页面时遇到了一些困难。我创建了一个名为 PagesController 的控制器,因此我还有一个名为 pages 的视图文件夹,其中包含 Oakville.html.erb 文件.

我的控制器如下所示:

class PagesController < ApplicationController

    def our_mission
    end

end

我的路线文件如下所示:

get "oakville", :to => "pages#oakville"

我假设我应该能够通过 localhost:3000/oakville 访问此页面??

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    是的,但您需要为 Oakville 添加控制器操作

    class PagesController < ApplicationController
    
        def oakville
        end
    
    end
    

    另外,您需要创建 oakville.html.erb 并将其放入您的 views/pages 目录

    【讨论】:

      【解决方案2】:

      控制器中的方法称为操作,对于您希望能够导航到的每个静态页面,您都需要相应的控制器操作。当一个人(或链接)导航到yoursite/oakville 时,您的路由文件需要知道要为 url 的 Oakville 分支执行哪个控制器操作。

      在您显示的路线中,get "oakville", :to =&gt; "pages#oakville" 您要求控制器呈现oakville 操作。但是您的控制器中没有 oakville 操作。加一个,问题就解决了:

      class PagesController < ApplicationController
      
        def our_mission
        end
      
        def oakville
        end
      
      end
      

      【讨论】:

      • 感谢您的澄清。我已经按照建议完成了所有操作,但是当我转到该页面时,它现在显示“此网页具有重定向循环”。
      • 您能否展示更多与 Pages 控制器相关的路由文件,或者如果您遗漏了什么,可以展示更多您的 Pages 控制器吗?
      【解决方案3】:

      您显示的路线和您显示的操作完全无关。

      如果您想将 http://www.example.com/oakville 之类的 url 路由到 Pages 控制器上名为 our_mission 的操作,则路由如下所示:

      get 'oakville' => 'pages#our_mission'
      

      您所写的内容表明您希望存在一个名为 oakville 的操作,而根据您提供的代码,它不存在。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-27
        • 2011-10-24
        • 1970-01-01
        • 2013-04-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多