AJAX POST请求上没有方法错误轨道
no method error rails on AJAX POST request
我正在尝试从fullcalendar到rails进行AJAX POST请求,但我没有得到方法错误,我不知道为什么,因为参数似乎很好。如果我忽略了ajax请求中的event:,所以只发送数据这样的参数:{title:title,sender_id:senderId..},那么我会得到同样的错误。我错过了什么?
Started POST "/users/1/events" for ::1 at 2015-12-17 14:33:12 -0800
14:33:12 puma.1 | Processing by EventsController#create as */*
14:33:12 puma.1 | Parameters: {"event"=>{"title"=>"asdfasdfadsf", "start_at"=>"Fri, 18 Dec 2015 00:00:00 GMT", "end_at"=>"Sat, 19 Dec 2015 00:00:00 GMT", "sender_id"=>"1", "recipient_id"=>"2"}, "user_id"=>"1"}
14:33:12 puma.1 | User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
14:33:12 puma.1 | Completed 500 Internal Server Error in 8ms (ActiveRecord: 0.3ms)
14:33:12 puma.1 |
14:33:12 puma.1 | NoMethodError - undefined method `save' for nil:NilClass:
ajax请求:
$.ajax({
type: "POST",
url: "/users/1/events",
data: { event: {
title: title,
start_at: "" + new Date(start).toUTCString(),
end_at: "" + new Date(end).toUTCString(),
sender_id: 1,
recipient_id: 2
}}
});
事件控制器:
def create
respond_to do |format|
if @event.save
format.html { redirect_to @event, :notice => 'Event was successfully created.' }
format.json { render :json => @event, :status => :created, :location => @event }
else
format.html { render :action => "new" }
format.json { render :json => @event.errors, :status => :unprocessable_entity }
end
end
end
private
def event_params
params[:start_at] = params[:start]
params[:end_at] = params[:end]
params[:recipient_id] = params[:recipientId]
params[:sender_id] = params[:senderId]
params[:all_day] = params[:allDay]
params.require(:event).permit(:recipient_id, :sender_id, :title, :body, :start_at, :end_at, :all_day)
end
event.rb
def as_json(options = {})
{ id: self.id,
recipientId: self.recipient_id,
senderId: self.sender_id,
title: self.title,
body: self.body || "",
start: start_at,
:end => end_at,
allDay: self.all_day,
recurring: false,
url: Rails.application.routes.url_helpers.user_event_path(self.recipient_id, self.id)
}
end
您已经定义了event_params
方法,但没有在任何地方调用它。在create
方法中,在顶部(假设@event
的类是Event
),添加行
@event = Event.new(event_params)
相关文章:
- 我的html有一些错误
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- jQuery AJAX Post方法错误(语法错误)
- Webrtc和socket.io:createanswer()总是有一个错误.为什么?我的代码连接了两个对等体,但其中只
- 这个javascript代码有什么错误,它有将数字转换为单词的功能
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 谷歌地图javascript多个方法错误
- 检查对话框是否为 Open 会引发“初始化前无法在对话框上调用方法”错误
- HERE 映射 javascript API - 抛出“指针必须有 ID”错误
- 当输入值已更改时,html() 方法错误
- 我有一个错误,由于某种原因,号码被更改了,而不是名字
- 为什么dijit.form.Select有方法setStore(),而dijit.fform.FilteringSele
- 使用 JavaScript 和无线电输入更改 HTML 中的背景颜色有什么错误
- 这个篡改的代码有什么错误
- Javascript待办事项列表-我的代码中有什么错误
- 我的代码中有什么错误?计算最多 n 的素数
- 对象不支持 IE7 jQuery 中的此属性或方法错误
- jQuery.validation 在生日年龄验证中添加方法错误
- addEventListener有无法解释的未定义方法错误
- Aurelia项目设置有开箱错误,修复方法是什么?