【问题标题】:where to store a jbuilder template?在哪里存储 jbuilder 模板?
【发布时间】:2015-01-29 17:05:47
【问题描述】:

我正在尝试使用 jbuilder 模板。

给定控制器,

class Api::ReviewsController < ApplicationController
  before_filter :authenticate_user!
  respond_to :json

  def create
    @review_request = ReviewRequest.new(review_request_params.merge(user_id: current_user.id))
    if @review_request.save
      render 'review_requests/review'
    else
      head :forbidden
    end
  end
end

我将 jbuilder 模板存储在 app/views/review_requests/review.json.jbuilder

json.review_request do
  json.(@review_request, :title,)
end

我收到一个模板注释发现错误。

ActionView::MissingTemplate (Missing template review_requests/review with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
  * "/Users/jd/Dropbox/application-code/antipattern/app/views"
  * "/Users/jd/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/devise-3.4.1/app/views"
  * "/Users/jd/Dropbox/application-code/antipattern"
  * "/"
):
  app/controllers/api/reviews_controller.rb:8:in `create'

对于存储此模板的正确位置或为什么 rails 没有找到我正在使用的模板(如果存储位置恰好没问题)有什么想法吗?

【问题讨论】:

  • 您需要使用respond_to来响应json请求。
  • @bronislav 你注意到respond_to 已经写在控制器中了吗?除非我遗漏了什么,否则我认为情况并非如此?
  • @bronislav 所以实际上,我的错误是我没有向服务器发出.json 请求,这是我的一个错误,但你的陈述让我考虑了一下,非常感谢。跨度>

标签: ruby-on-rails


【解决方案1】:

jbuilder需要json类型的web请求,对rails服务器的html请求会导致jbuilder模板不被渲染。

【讨论】:

    猜你喜欢
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2020-01-03
    • 2020-04-10
    相关资源
    最近更新 更多