私は controllers/admin/base_controller.rb を持っており、他の管理コントローラー (クラス Admin::EventsController < Admin::BaseController のように呼び出されます) に対して (inherited_resources gem の助けを借りて) すべての同様のアクションを定義しましたが、ほぼ満足しています -コントローラーは 50% で空ですが、一般的に 4 つのビュー (index.haml、new.haml、edit.haml、_form.haml) を複製していることに気付きました。_form だけが異なって見えます。他は 2 行のコードで、すでに 15 回も複製されています。views/admin/events/index.haml を削除して、views/admin/base/index.haml に配置しようとしましたが、Rails はそれをテンプレートの検索パスに含めません:
Template is missing
Missing template admin/events/index with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml, :haml], :formats=>[:html], :locale=>[:ru, :ru]} in view paths "/home/nir0/projects/vsluh/app/views", "/home/nir0/.gems/ruby/1.9.1/gems/event-calendar-2.3.3/app/views", "/home/nir0/.gems/ruby/1.9.1/gems/ckeditor-3.5.3/app/views", "/home/nir0/.gems/ruby/1.9.1/gems/devise-1.2.1/app/views"
コントローラーレベルで追加するにはどうすればよいですか? TEMPLATE_ROOT に関する情報を見つけましたが、定数で非推奨です。も試した
ActionView::Base.new do |av| av.base_path.add = "#{RAILS_ROOT}/app/views/admin/base" end
成功せず
目標は、i18n と inherited_resources で実行できるタイトルとオブジェクト以外はすべて同じである、インデックス、新規、および編集ビューを削除することです。