这里发生了什么?我试图通过使用JSON数据类型的ajax调用添加数据。但每次我尝试添加数据时都会显示错误,如图所示。
我认为它总是响应html格式,但不响应json格式。
def new
@batch = Batch.new
respond_to do |format|
format.json
format.html
end
end
def create
@batch = Batch.new(batch_param)
puts "/n/n/n/n name: #{@batch.name} /n/n/n/n"
respond_to do |format|
if @batch.save
format.json { render json: @batch, status: :created, location: @batch }
format.html { redirect_to @batch, notice: "Save process completed!" }
else
format.html {
flash.now[:notice]="Save proccess coudn't be completed!"
render :new
}
format.json { render json: @batch.errors, status: :unprocessable_entity}
end
end
end
答案 0 :(得分:2)
这只是折旧警告,如果您将应用升级到导轨5.1
,可能会出现错误,如日志中明确提到的那样,您可以通过搜索您使用的控制器来解决此问题before_filter
并将其替换为before_action
。
before_action
执行相同的操作(在请求命中控制器中的操作之前运行一些代码)before_filter
在早期版本的rails中执行。
答案 1 :(得分:0)
DEPRECATION WARNING
行来自您的application_controller.rb
,只需将before_filter
更改为before_action
,此警告就会消失。
Can't verify CSRF token authenticity
是实际错误,导致无法返回正确的结果。如果您的控制器不需要CSRF令牌用于JSON请求,您应该向控制器添加如下所示的行:
skip_before_action :verify_authenticity_token, if: :json_request?