2011-11-10 6 views
3

私は自分のサイトのCMSをRailsに構築しようとしています。私のサイトを読んでいる人が見ることができるすべてのビューに対して、つまり、indexshowビュー、ビューの作成、更新、削除を処理するビューです。私はおそらく、これらの2つの領域を別々のコントローラに分けて、すべての管理者のルートにネームスペースを分けておくべきだと理解していますが、私はビューの実行方法を失います。Railsアプリケーションの管理インターフェース用に別々のビューとアセットを定義する

コントローラの特定のセットに対して、スタイルシートやJavaScriptファイルを含むレイアウトを指定する方法はありますか?注意:私はRails 3.1を使用していますので、すべてのスタイルシートとスクリプトがすべてのビューで提供される単一のファイルにコンパイルされます。私はあなたが<div id="index">インデックスのものを使用することですしたいと思うものを得るの

答えて

17

私は非常によく似たものを探して走り回ったを書きました。そしてIain Heckerの偉大なチュートリアルの記事を見つけるのに十分な運が良かった。

Backends in Rails 3.1

ITSは名前空間やテンプレートの継承を使用して設定します。そして、最も重要なのは彼がホセ・バライムによってinherited_resourcesの宝石を使用していることです。本当にあなたのコントローラーをきれいにします。

とにかく、本当に正しいトラックで私を得ました。

はまた、どのような助けになることは、あなたのデフォルトのapplication.jsであるが使用してください:

//= require_directory . 

代わりの

//= require_tree 

これは、スプロケットは、現在のディレクトリ内のファイルを読み込むようになります。その後、同じことをしている独自のapplication.jsファイルを持つadmin /フォルダを追加することができます。

<%= javascript_include_tag "application" %> 

とレイアウト/管理/ application.html中:使用するあなたのレイアウト/ application.html.erbでもちろんその後

。ERB:

<%= javascript_include_tag "admin/application" %> 

希望...

アダムを助けます。

+0

オハイオ州の男これは、私が探していた正確にクレイジー便利です。 – rpowell

+0

お役に立てて嬉しいです... – Adam

1

一つの方法.... 、その後、CSSのためのdiv

+0

役に立つとはいえ、スタイルシートとスクリプトをどのように分けるかはわかりません。 – rpowell

+0

あなたはなぜそれが必要だと思うか明確ではありません。各セクションにスタイルシートがある場合は、#index、#editなどを使用してスタイルを正しいレイアウトに制限してください。 jsのために同じ – chrispanda

3

のスタイルをnested layoutsを使用し、私は私の中でいくつかの体のクラスを追加したいですapplication.html.erbは、a)管理者以外の管理者と、b)お互いからのさまざまなコントローラ/アクションを分けることができます。ここでは私のbodyタグは、しばしばadmin?は、以下のように定義されたApplicationHelper方法である

よう
<body class="<%= 'admin' if admin? %> <%= params[:controller].parameterize %> <%= params[:controller].parameterize %>_<%= params[:action].parameterize %>"> 

に見えるものです:

def admin? 
    controller.class.name.split("::").first=="Admin" 
end 

JSためには、特定のjavascriptを表示取り組む必要があります。そのために私はあなたにhereを指摘するつもりです。ここで説明した複数のマニフェストファイルテクニックは、名前空間内に必要なものすべてを含むadmin.jsファイルを構築することができるので、あなたにとって役に立ちます。

UPDATE:私はこれは良い質問だと思ったので、私はより徹底的応答here

関連する問題