2009-08-29 84 views
19

导轨能否处理在没有控制器的情况下创建视图?例如,假设我有一个链接到其他页面的页面,是否需要为此创建一个虚拟控制器,或者我可以在我的路由文件中做些什么?没有控制器的导轨视图

回答

14

不需要所有请求都需要经过一个控制器。我想要PagesControllermap.page ":action", :controller => "pages"。这样,我可以创建app/views/pages/foo.erb,并在/foo上提供,无需任何额外的代码。

+4

Thoughtbot有一个有用的插件为此:http://github.com/thoughtbot/high_voltage/tree/master – jonnii 2009-08-30 05:19:01

+0

这似乎过时了...?它首先说地图是不确定的。然后我将地图作为参数添加到routes.rb | map |之上 然后Rails给了我一个更详细的错误指向这个URL [the-lowdown-on-routes-in-rails-3](https://blog.engineyard.com/2010/the-lowdown-on-routes-在护栏-3 /) – msanjay 2014-04-07 10:54:15

3

如果你真的不需要它作为应用程序的一部分,另一个选择是在/ public目录中添加一个静态HTML文件。

0

号的所有请求都必须经过控制器。

如果您在查看文件夹中有类似index.html.erbcontact.html.erb的页面。您需要创建一个名为contact的虚拟控制器。然后您可以链接到index.html.erbcontact.html.erb。并在此处输入链接<%= link_to 'contact', :controller => "ads", :action => "contact" %>“ads” - >控制器名称。

19

我喜欢August的答案,但我有一个稍微不同的方法。

比方说,你要添加

/any/path/somefile.html.erb

但不能添加控制器...

你可以只添加的文件夹视图名为“应用程序”,在该目录中创建您的文件..

然后在您的路线文件中只需添加

match '/any/path/somefile' => 'application#somefile' 

你ERB仍会评估,你会得到你的布局,你可以创建任何你想要的路径... (这一切确实是删除了页面控制器的需求)

希望它可以帮助...