Rails JBuilder部分缺失模板错误

时间:2015-05-26 19:32:20

标签: ruby-on-rails ruby json jbuilder

我正在为第三方API创建一个可安装的rails引擎。

控制器:

app/controllers/myengine/v1/application_controller.rb app/controllers/myengine/v1/customers_controller.rb

module Myengine
  class V1::CustomersController < V1::ApplicationController
    respond_to :json
    def create 
       ... 
    end 
  end 
end 

模型:

app/models/myengine/customer.rb

的观点:

app/views/myengine/v1/customers/_customer.json.jbuilder app/views/myengine/v1/customers/create.json.jbuilder

我正在使用JBuilder获取我的观点。每当我通过REST客户端点击我的创建操作时,rails会为它找出适当的视图(即app/views/myengine/v1/customers/create.json.jbuilder)。

但是,当我引用create.json.jbuilder内的部分内容时,它会抱怨模板丢失了。

ActionView::MissingTemplate at /v1/customers

Missing partial myengine/customers/_customer with {:locale=>[:en], 
:formats=>[:json], :variants=>[], :handlers=>[:jbuilder]}. Searched in:

engines/myengine/app/views/myengine/v1/customers/create.json.jbuilder, line 1
---------------------------------------------------------------------

ruby
>   1   json.partial! @customer

正如你可以看到myengine/customers/_customer在查看myengine/v1/customers/_customer时应该查看的部分内容。

我可以添加json.partial! 'myengine/v1/customers/customer', customer: @customer来指定部分所在的位置,这样可行。然而,典型的轨道神奇地知道在哪里找到部分,只是因为一些奇怪的原因不在这里。

非常感谢您的帮助!!

0 个答案:

没有答案