在我的rails应用程序中,我向服务器发出了一个ajax请求,以存储一些数据.这过go 可以正常工作,但现在我遇到了一个错误:

ActionController::UnknownFormat (ActionController::UnknownFormat):
  app/controllers/reservations_controller.rb:45:in `create'

下面是控制器和我的javascript文件,我在其中声明数据类型为JSON

class ReservationController < ApplicationController

  respond_to :html, :json

  def create
    ...
    respond_to do |format|
      if @reservation.save
        format.html do
          redirect_to '/'
        end
        format.json { render json: @reservation.to_json }
      else
        render 'new'
      end
    end # respond_to
  end # create 
end # ReservationController

作用js

$.ajax({
        url: url_link,
        dataType: 'json',
        type: 'POST',
        data: dataToSend
      })

完整的错误日志(log)是:

Completed 406 Not Acceptable in 45ms

ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/bookings_controller.rb:45:in `create'

Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.5ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.8ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (9.6ms)

推荐答案

更新create个操作,如下所示:

def create
  ...
  respond_to do |format|
    if @reservation.save
      format.html do
        redirect_to '/'
      end
      format.json { render json: @reservation.to_json }
    else
      format.html { render 'new'} ## Specify the format in which you are rendering "new" page
      format.json { render json: @reservation.errors } ## You might want to specify a json format as well
    end
  end
end

您使用的是respond_to方法,但不指定呈现new页的format方法.因此,错误为ActionController::UnknownFormat.

Ruby相关问答推荐

MongoDB通过Brew Services";未定义的方法`plist_starting';";

如何使用 gsub 删除返回字符串中的/和/i?

使用数组作为其中之一转换键和值

Ruby 3 从多个预定纤程中收集结果

为什么安全导航比在 Rails 中使用 try 更好?

如何从 url 获取文件扩展名?

如何在 Ruby 中合并多个哈希?

如何从 Ruby 中的线程返回值?

类中的 Ruby 类(或模块中的模块)

如何在不使用 Ruby 保存到磁盘的情况下生成 zip 文件?

Rails 类 << self

如何将消息附加到 RSpec 判断?

Ruby 中的 method_missing trap

条件子句中的赋值是好的Ruby风格吗?

Ruby 1.9:如何正确大写和小写多字节字符串?

Ruby:将字符串转换为日期

判断ruby中的字符长度

如何理解 class_eval() 和 instance_eval() 的区别?

Array.empty 的相反方法是什么?或 [].empty?在Ruby中

如何在 Mac OS Sierra 10.12 上安装 Nokogiri