0

新しいコントローラーを生成すると、サブフォルダーの下で、同じ「構造」内の他のコントローラーが機能していても、テンプレートが見つからなくなります。

app / members / group_controller.rbにある次のコントローラーがあります(rails g controller Members :: Groupコマンドによって作成されます)

class Members::GroupController < ApplicationController
  def index
    render :layout => 'dashboard'
  end
end

私はviews/members / group/index.html.erbにテンプレートを持っています

私はroutes.rbに次の関連する行を持っています(つまり、明確にするために他のいくつかを省略しています):

namespace :members do
    match '/group' => 'group#index'
end

熊手ルートは私に次の関連する行を示しています:

members_group            /members/group(.:format)                       members/group#index

URL http://127.0.0.1:3000/members/groupを入力すると、次のようなテンプレートがありませんというエラーが発生します。

テンプレートがありません

テンプレートmembers/group / index、application / indexに{:locale => [:en]、:formats => [:html]、:handlers => [:erb、:builder、:arb、:coffee]}がありません。検索対象:* "/ Users / mitch / Documents / Development / TME / app / views" * "/Users/mitch/.rvm/gems/ruby-1.9.2-p290/bundler/gems/active_admin-7c3e25f30224/app/ビュー"*"/Users/mitch/.rvm/gems/ruby-1.9.2-p290/gems/kaminari-0.13.0/app/views"*"/Users/mitch/.rvm/gems/ruby-1.9。 2-p290 / gems / devise-2.0.0 / app / views "

ルーティングはインデックスメソッドに機能しています。たとえば、リダイレクトを設定して処理を実行できますが、テンプレートを表示できません。

なぜそうなのか?

ありがとう

(レール3.1)

4

3 に答える 3

1

これは、最初にコントローラーを生成する方法に関連しているようです。

次のように大文字を使用しました。

rails g controller Members::Group (他のいくつかのテスト コントローラーも同様に試し、それらを破棄して再作成しました)

コントローラーを破棄し、小文字の等価物を実行したとき:

rails g controller members::group すべて正常に動作し、テンプレートを見つけることができます

これを裏付ける情報は他に見つかりませんが...

于 2012-05-02T08:54:45.643 に答える
0

私はまったく同じ問題を抱えていました。ターミナルを使用してディレクトリに移動し、/layouts にファイルを一覧表示すると、1 つのレイアウト ファイルが赤色のアーカイブ ファイルとして表示されました。理由がわかりません。

修正するには: レイアウト ファイルからコードをコピーして貼り付け、レイアウト ファイル (rm "file") を削除し、次の方法でターミナルを使用して同じレイアウトを作成します。

touch file_name.html.erb

コードを新しいファイルに貼り付けると、機能するはずです。

于 2012-05-04T18:20:08.870 に答える
0

グループ インデックス ページでダッシュボード レイアウトをレンダリングしていることに気付きました。ダッシュボードのパスを確認してください。正しい場所にありますか????

于 2012-05-01T12:26:01.713 に答える