Ruby on rails 从我的Ruby on Rails Gem渲染视图

Ruby on rails 从我的Ruby on Rails Gem渲染视图,ruby-on-rails,ruby,ruby-on-rails-4,gem,Ruby On Rails,Ruby,Ruby On Rails 4,Gem,我为RubyonRails创建了一个简单的Gem;其思想是,它为我在几个应用程序中使用的常见操作(索引/显示/等)提供一些代码/视图。我想在宝石里把它“擦干” 创建关注点没有问题,但是,我似乎无法在我的应用程序中呈现视图 例如,在mylib/rails\u default\u actions/rails\u default\u actions.rbI中: module RailsDefaultActions module DefaultActions extend ActiveSup

我为RubyonRails创建了一个简单的Gem;其思想是,它为我在几个应用程序中使用的常见操作(索引/显示/等)提供一些代码/视图。我想在宝石里把它“擦干”

创建关注点没有问题,但是,我似乎无法在我的应用程序中呈现视图

例如,在my
lib/rails\u default\u actions/rails\u default\u actions.rb
I中:

module RailsDefaultActions
  module DefaultActions
    extend ActiveSupport::Concern
      respond_to do |format|
        format.html { render 'default/index' }
      end
    end
  end
end
但出现了一个错误:

Missing template default/index with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :slim, :haml]}. Searched in:
  * "/home/martin/myapp/app/views"
  * "/home/martin/myapp/vendor/bundle/ruby/2.1.0/gems/devise-3.2.4/app/views"
  * "/home/martin/myapp"
我最终设法绕过了这个错误,但感觉非常笨拙,在某些情况下不起作用在gem中包含视图的正确方法是什么?

我考虑过创建一个引擎,但这似乎有些过分,因为我有一个顾虑和一些观点;这方面也有一些方法,但创建基本引擎非常简单:

module MyGemName
  class Engine < Rails::Engine
  end
end
模块名称
类引擎

当Rails查找要渲染的视图时,它将首先查找应用程序的
app/views
目录。如果在那里找不到视图,它将检查所有具有此目录的引擎的
app/views
目录。

是您试图在应用程序中还是在gem中呈现的视图?@eduardo这并不重要,但这是在gem中。Rails报告错误时,它会向您显示搜索视图的路径。在我看来,您的观点不在加载路径中。这可能吗?