0

Ruby on Rails は初めてで、Drupal/PHP のバックグラウンドを持っています。

私は何か簡単なことをしようとしています。私たちについて、免責事項などのいくつかのページ用の「静的」コントローラーと、ビデオ用の「ビデオ」コントローラー。

アプリケーション全体の外観は同じです。ビューの重複を避ける方法を見つけようとしています。

Drupal では、テーマは次のようになります。テーマ関数によって生成されます)。

これは素晴らしいと思います。

Railsで読んだのは、「レイアウト」と呼ばれるapplication.html.erb(通常、アプリケーション全体で利用可能なスタイルシート、jsなどが含まれているため、Drupalのhtml.tpl.phpに似ていると思います)です。次に、このレイアウトでコンテンツを「生成」する「ビュー」があります。コントローラーでビューを指定するか、自動的にビューを取得します。ビューは Drupal の「page.tpl.php」と考えます。

私のサイトのほとんどは、ヘッダー、トップ メニュー、コンテンツ、右サイドバー、フッターなど、同じ構造を使用しています。ただし、各エリアの内容はパスによって異なります。そこで、次のようにしようと考えています。

  • 'Static' と 'Video' の両方が同じビューを呼び出しますが、変数の値は異なります。つまり、コンテンツ エリアとサイドバーの値が異なります。
  • このビューは、「render」を使用して別のビューをレンダリングし、コントローラーから渡された変数のサブセットを使用します。つまり、コンテンツとサイドバー ビューをレンダリングします。
  • 必要に応じて、これらのビューはさらに多くのビューをレンダリングします。

私が読んだもう1つはパーシャルです。ビューを別のビュー内にレンダリングすることと、部分的にレンダリングすることを区別できないようです。

どの方法が良いですか?それとも、より良い「Rails Way」がありますか?

4

1 に答える 1

0

これはカバーするのに非常に大きなトピックですが、編集されたハイライトは

たとえばヘッダーやナビゲーションバーなど、すべてのページでコンテンツを繰り返したい場合は、layouts/application.html.erbに配置します。

そのページに固有のコンテンツでビューを整理したい場合は、パーシャルを使用できます。通常、ビューでは、sharedというフォルダーを作成し、そこにパーシャルを配置します。たとえば、_form.html.erbという名前のパーシャルを保存する場合(ファイル名の先頭にアンダースコアを付けてパーシャルに名前を付けるようにしてください)、ビューで次のように呼び出します。

<%= render 'shared/form' %>

レイアウト/アプリケーションファイルでパーシャルを使用して、それをクリーンに保つこともできます

これは私のやり方です。経験豊富なレールの人はもっと良い方法があると確信しています

お役に立てば幸いです。他に質問がある場合は、質問してください。

于 2012-12-07T12:29:52.153 に答える