2011-01-12 8 views
2

ルビーの初心者です。ルーティングの簡単な問題で立ち往生しています。ruby​​ on railsサブディレクトリ 'Views'のメインディレクトリ

私のコントローラー 'sub'と追加、編集、新しいerbファイルを含む 'Views'フォルダーがあります。

私のルートファイルには、 'map.resources:subs'があります。

これまではすべて問題ありません。

問題:私は、追加、編集、新しいerbファイルを 'Views'メインディレクトリ内の 'admin'というサブフォルダに移動しました。 私はそれらのerbファイルを 'admin'サブディレクトリから呼び出す方法がわかりません。デフォルトでは

、それは/app/views/subs/index.html.erbを探している、と私はそれが/app/views/subs/admin/index.html.erb

に見えるようにしてくださいしたいです誰も私にこれを行う方法を教えてもらえますか?

多くの多くの感謝

答えて

3

あなたがやりたいことは管理者のルーティングであると思われるので、私は別のアプローチを示唆しています。あなたのroutes.rbをでは、その後、例えば、サブディレクトリのコントローラ/ adminにあなたのコントローラを入れて、あまりにも「管理者」でそれらを名前空間、サブディレクトリビュー/管理/潜水艦も

にあなたの意見を入れて

namespace :admin do  
    resources :subs 
    end 

を書きます

class Admin::StubsController < Admin::ApplicationController 
    your_code_goes_here 
end 

もちろん、controllers/adminディレクトリにもapplication_controller.rbが必要です。しかし、あなたは寒いからApplicationControllerから派生しているので、それは必要ではありません。

お使いのコントローラがURL /管理/潜水艦

その助けをして呼び出すことができ

+0

ありがとう、あなたの助けをたくさん:)はい、それは本当に多くの助けがされている – Kim

2

あなたは明示的にこのように、あなたのコントローラのアクション内にテンプレートをレンダリングすることができます:

render :template => "subs/admin/index" 
+0

ありがとう..私の問題の完璧な解決策:) – Kim

0

私はRoRの初心者です。

私が望んでいたのは、1つのフォルダにすべてのビュー(モバイルフレンドリー版など)をグループ化して、余分な名前空間で終わらないか、コントローラで新しいメソッドを作成することでした。 localhost:3000/posts呼び出し:

class Post < ActiveRecord

なく

class Admin::Post < ActiveRecord

しかし、これは私のGoogleの最初のヒットだったのでviews/android/posts/index.html.erb

にビューをロードし、以下のリンクは、その代替の回答にありますいつか私が見つけた。

Rails: Elegant way to structure models into subfolders without creating submodules