I’m trying to render a jbuilder template which doesn’t exist in the usual place. With the below code, the default view it would look for would be stock_transfer_products/show.json.jbuilder
, but I want to specify a template in a non-standard location, i.e. products/index.json.jbuilder
# controller: StockTransferProducts
def show
stock_transfer = current_customer.stock_transfers.find(params[:id])
# by starting with stock_transfer.stock_transfer_products, we can order
# the products by when they were added to the stock_transfer, which is
# what we ultimately want
@products = stock_transfer.stock_transfer_products.order(created_at: :desc).map(&:product)
@products = InvProcure::Product.find(@products.map(&:id))
respond_to do |format|
format.json { render "products/index.json" }
end
end
It doesn’t seem able to find it, however:
ActionView::MissingTemplate (Missing template products/index.json with {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}. Searched in:
* "/home/blaine/dev_projects/myproj/app/views"
* "/home/blaine/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/letter_opener_web-1.4.0/app/views"
* "/home/blaine/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bootstrap4-kaminari-views-1.0.1/app/views"
* "/home/blaine/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/kaminari-core-1.2.0/app/views"
* "/home/blaine/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/devise-4.7.1/app/views"
* "/home/blaine/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/actiontext-6.0.3.1/app/views"
* "/home/blaine/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/actionmailbox-6.0.3.1/app/views"
):
I’m staring right at app/views/products/index.json.jbuilder
but I keep getting the above error.