シンプルなコンテンツ管理システムを構築し、動的なナビゲーションバーを構築しようとしていますが、私が思いついたアプローチは、すべてのページの配列を各コントローラーからアプリケーションテンプレートに送信し続けることです。これに対するより良いアプローチはありますか?
質問する
38 次
2 に答える
1
@Amit Patelがあなたの質問へのコメントで述べたように、より良いアプローチはあなたが参照しているコードをに移動することですApplicationController
。
アプリケーション内のすべてのコントローラーがクラスを拡張しますApplicationController
。すべてのコントローラー間で共有したい機能はすべて、このクラスに配置できます。
例として(実際のコードを提供していないため)、これを次のように設定できます。before_filter
class ApplicationController < ActionController::Base
before_filter :build_pages_array
# Your other ApplicationController code here...
private
def build_pages_array
@pages = Page.all
end
end
before_filterは、すべてのコントローラーのすべてのアクションに対して実行さ@pages
れ、アプリケーションのすべてのテンプレートで効果的に使用できるようになります。
于 2012-08-31T11:08:45.127 に答える
0
ApplicationHelper
( )モジュールでメソッドを作成するapp/helper/application_helper.rb
と、ビューからこのメソッドにアクセスできます。
module ApplicationHelper
def get_your_array
# create your array here
end
end
あなたの見解では:
<% get_your_array.each |item| -%>
<%= item %>
<% end -%>
于 2012-08-31T11:08:35.040 に答える