相关疑难解决方法(0)

ActionController的:: UnknownFormat

在我的rails应用程序中,我有一个ajax请求到服务器,以存储一些数据.这曾经没有任何问题,但现在我收到一个错误:

ActionController::UnknownFormat (ActionController::UnknownFormat):
  app/controllers/reservations_controller.rb:45:in `create'
Run Code Online (Sandbox Code Playgroud)

以下是控制器和我的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
Run Code Online (Sandbox Code Playgroud)

function.js

$.ajax({
        url: url_link,
        dataType: 'json',
        type: 'POST',
        data: dataToSend
      })
Run Code Online (Sandbox Code Playgroud)

完整的错误日志是:

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 …
Run Code Online (Sandbox Code Playgroud)

ruby ajax respond-to ruby-on-rails-4

43
推荐指数
3
解决办法
12万
查看次数

Rails 在 ajax 调用同一控制器的方法时更新实例变量

我有一个由简单控制器处理的视图:

class CountController < ApplicationController

    def count
        @index = 0
    end
end
Run Code Online (Sandbox Code Playgroud)

在我看来,我只是添加了一个按钮:

<%= link_to "Change next day", increase_count_path(@index), :class => 'btn' :remote => true %>
Run Code Online (Sandbox Code Playgroud)

该请求由我在 CountController 中添加的方法处理:

def increase_count
    @index = params[:index].to_i + 1
end
Run Code Online (Sandbox Code Playgroud)

尝试后,我看到每次请求都被发送到 /increase_count/0 ,所以这显然不会像我希望的那样更新变量。

所以我的猜测是,两者没有联系。第一个在视图中具有其范围,而第二个来自increase_count 方法的范围在我从中呈现的任何javascript 中都是可见的。

我怎样才能在 Rails 中实现这一目标?我试图实现并遇到的事情如下(简化版本):我有一个 3 个字符串的数组。首先我显示第一个。单击时,我想进行 Ajax 调用、递增索引并显示下一个字符串。但我最终只显示了第二个,因为下一个调用不会更新索引。

ruby-on-rails

2
推荐指数
1
解决办法
1545
查看次数

标签 统计

ajax ×1

respond-to ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-4 ×1