我正在为第三方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
来指定部分所在的位置,这样可行。然而,典型的轨道神奇地知道在哪里找到部分,只是因为一些奇怪的原因不在这里。
非常感谢您的帮助!!