没有控制器的rails视图

时间:2009-08-29 21:25:06

标签: ruby-on-rails

rails可以在没有控制器的情况下创建视图吗?例如,假设我有一个只链接到其他页面的页面,我是否需要为此创建一个虚拟控制器,或者我可以在我的路径文件中执行某些操作?

5 个答案:

答案 0 :(得分:22)

我喜欢奥古斯特的答案,但我的方法略有不同。

我们假设您要添加

  

/any/path/somefile.html.erb

但不添加控制器...

您只需将文件夹添加到名为" application"的视图中,在该目录中创建您的文件。

然后在你的路线文件中添加

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

你的erb仍在评估,你得到你的布局,你可以创建你想要的任何路径...... (所有这一切都取消了对页面控制器的需求)

希望它有所帮助...

答案 1 :(得分:15)

没有。所有请求都必须通过控制器。

我喜欢PagesControllermap.page ":action", :controller => "pages"。这样,我就可以创建app/views/pages/foo.erb并在/foo上将其提供,而无需任何额外的代码。

答案 2 :(得分:3)

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

答案 3 :(得分:1)

如果你是一个勇敢的灵魂。你可以尝试边缘导轨3. Katz在他的博客上展示了这种可能性。这是链接:

http://yehudakatz.com/2009/07/19/rails-3-the-great-decoupling/

答案 4 :(得分:0)

没有。所有请求都必须通过控制器。

如果您的视图文件夹中有index.html.erbcontact.html.erb这样的网页。您需要创建一个名为contact的虚拟控制器。然后,您可以从contact.html.erb链接到index.html.erb。并将链接指定为<%= link_to 'contact', :controller => "ads", :action => "contact" %>此处为“广告” - &gt;控制器名称。