0

RailsをAngularjsで使用しようとしています。Railsコントローラーが(データベース内の)情報を一覧表示および変更する要求を処理することを想定している間、Angularはすべてのクライアント側の作業を実行します。

私は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'

indexこれは、views / main/index.htmlに1つの空のメソッドと完全に空のテンプレートファイルのみを使用してコントローラーMainを定義する必要があることを意味します。この空の役に立たないファイルの出現を回避するにはどうすればよいですか?

私はApplicationControllerでroot :to => 'application#index'空のindexメソッドを使用して定義することを考えていましたが、このコントローラーは他のすべてのコントローラーへの継承の基本であるため、それらにがらくたを持たせたくありません。index.htmlまた、このアプローチは空のテンプレートの問題を解決しません

4

1 に答える 1

0

空である間、コントローラーは実際には慣例により多くの処理を行っています。ビューが自動的に表示されindex.html.erb、レイアウトが指定されていないため、レイアウトでラップされapplication.html.erbます。

そのため、ファイルはまばらかもしれませんが、舞台裏で多くのことが行われています。

于 2013-03-03T22:32:09.377 に答える