2014-10-07 87 views
0

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

我的控制器看起来是这样的:

class PagesController < ApplicationController 

    def oakville 
    end 

end 

我的路线文件看起来像这样:

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

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

我感谢您的帮助!谢谢

回答

0

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

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

class PagesController < ApplicationController 

    def our_mission 
    end 

    def oakville 
    end 

end 
+0

感谢您的澄清。我按照建议做了所有事情,但是当我进入页面时,它现在说“这个网页有一个重定向循环”。 – 2014-10-07 01:39:56

+0

如果您遗漏了任何内容,您是否可以显示更多与页面控制器相关的路径文件,或者更多的页面控制器? – DRSE 2014-10-07 01:53:48

0

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

如果你想航线像http://www.example.com/oakville一个URL到Pages控制器上叫our_mission的行动,路线是这样的:

get 'oakville' => 'pages#our_mission' 

你写什么指明了你希望被称为oakville动作存在,根据你提供的代码,它不会。

1

是的,但你需要添加一个控制器行动奥克维尔

class PagesController < ApplicationController 

    def oakville 
    end 

end 

此外,您将需要创建oakville.html.erb并把这个变成你的views/pages目录