Rails:不在开发中重新加载引擎的视图路径

gee*_*oid 9 ruby-on-rails actionview

我有一个使用引擎的Rails项目,在开发模式下工作时遇到问题.

每当我对项目中的某些内容进行一些更改时,应用程序就无法找到引擎的视图.

 Missing template spree/api/credit_card_types/index, spree/api/base/index with {:locale=>[:es], :formats=>[:json], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee, :rabl], :versions=>[:v1]}. Searched in:
  * "/home/user/project/app/views"
  * "/home/user/.rvm/gems/ruby-2.1.0@project/bundler/gems/spree-ebda3354180a/api/app/views"
Run Code Online (Sandbox Code Playgroud)

引擎的视图根目录没有出现在搜索路径中,但我无法理解原因.任何的想法?

我的routes.rb(注意我没有安装我的引擎)

require 'resque/server'

Project::Application.routes.draw do

  resources :shipping_companies

  get 'signin', to: 'signin#signin'
  get 'register', to: 'register#register'

  scope '/frontend/api', module: :api do
    # ...
  end

  namespace :frontend do
  end

  Spree::Core::Engine.add_routes do
    # ...
  end

  # Custom Admin
  Spree::Core::Engine.add_routes do
    # ...
  end

  get '/faq/' => 'pages#show', id: 'faq'
  get '/privacy/' => 'pages#show', id: 'privacy'
  get '/terms/' => 'pages#show', id: 'terms'

  mount JasmineRails::Engine => '/specs' if defined?(JasmineRails)
  mount Resque::Server.new, :at => '/resque'
end
Run Code Online (Sandbox Code Playgroud)

我的引擎中的控制器(中app/controllers/spree/api/credit_card_types_controller.rb)

class Spree::Api::CreditCardTypesController < Spree::Api::BaseController

  def index
    @credit_card_types = SpreeDecidir::CreditCardType.all.select do |credit_card_type|
      credit_card_type.installment_plans.present?
    end.collect {|credit_card_type| SpreeDecidir::CreditCardTypePresenter.new credit_card_type}
    @amount = params[:amount].to_f if params[:amount]
  end
end
Run Code Online (Sandbox Code Playgroud)

和RABL视图(at app/views/spree/api/credit_card_types/index.v1.rabl)

object false
node(:count) { @credit_card_types.count }

child(@credit_card_types => :credit_card_types) do
  extends "spree/api/credit_card_types/show"
end
Run Code Online (Sandbox Code Playgroud)

wic*_*icz 1

RABL 是主机应用程序还是引擎的依赖项?如果是后者,请记住加载其依赖项是引擎的责任。确保require "rabl"在里面。

RABL 似乎对 Rails 引擎存在一些问题:https://github.com/nesquena/rabl/wiki/Setup-rabl-with-rails-engines