我有controllers/admin/base_controller.rb,其中为其他管理控制器定义了所有类似的操作(在inherited_resources gem的帮助下)(它们被称为类Admin::EventsController < Admin::BaseController),我几乎很高兴-控制器中有 50% 是空的,但我发现自己复制了通常有四个视图: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 做 |av| av.base_path.add = "#{RAILS_ROOT}/app/views/admin/base" 结束
没有成功
目标是删除 index、new 和 edit 视图,它们都是一样的,只是标题和对象,可以由 i18n 和inherited_resources 携带