Rails应用程序中的单个模板

时间:2013-03-03 22:25:47

标签: ruby-on-rails angularjs

我正在尝试将Rails与Angularjs一起使用。 Angular将完成所有客户端工作,而Rails控制器则假设处理列出和修改信息的请求(在数据库中)。

我在views / layouts / application.html.erb中有一个简单的模板:

<!DOCTYPE html>
<html>
<head>
  <title>SomeApp</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= stylesheet_link_tag    "vendors", :media => "all" %>

  <%= csrf_meta_tags %>
</head>

<body>
  <div id="wrapper" ng-app="app" ng-controller="AppCtrl">
    <div ng-controller="SomeApprCtrl">
      <%= render 'header' %>
      <div ng-view=""></div>
      <%= render 'footer' %>
    </div>
  </div><!-- End on wrapper -->
  <%= javascript_include_tag "application" %>
</body>
</html>

此模板执行启动Angular所需的一切。但我需要在Rails路由中添加一些内容。我需要定义控制器和动作。说这样的话:

root :to => 'main#index'

这意味着我需要在views / main / index.html中只使用一个空方法index和完全空的模板文件来定义控制器Main。我怎样才能避免出现这个空无用的文件?

我正在考虑使用root :to => 'application#index'并在ApplicationController中定义空index方法,但由于此控制器是继承所有其他控制器的基础,我不希望它们有任何废话。此方法也无法解决空index.html模板

的问题

1 个答案:

答案 0 :(得分:0)

虽然它是空的,但控制器实际上按惯例处理了很多。它会自动显示index.html.erb视图,由于尚未指定布局,因此将其包装在application.html.erb布局中。

因此,虽然文件可能很稀疏,但幕后会发生很多事情。