Javascript 在ajax jquery请求的URL部分应该放什么?URL始终返回未定义的内容
我试图呈现一个新的事件对象,并通过javascript将数据呈现在同一页面上。我需要在/users/1/events/new上显示结果,这是我的表单所在。我正在使用Ajax Jquery请求。但URL始终返回未定义的 以下是我尝试在URL部分中添加的内容: 1)Javascript 在ajax jquery请求的URL部分应该放什么?URL始终返回未定义的内容,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我试图呈现一个新的事件对象,并通过javascript将数据呈现在同一页面上。我需要在/users/1/events/new上显示结果,这是我的表单所在。我正在使用Ajax Jquery请求。但URL始终返回未定义的 以下是我尝试在URL部分中添加的内容: 1) ${this.href}.json 2) “这是行动” 3) /users/${e.target.data}/events`=>此动态代码应返回整数 我会遇到诸如非法调用和422(不可处理实体)之类的错误。我已经在谷歌上搜索过了,但仍然
${this.href}.json
2) “这是行动”
3)
/users/${e.target.data}/events`=>此动态代码应返回整数
我会遇到诸如非法调用和422(不可处理实体)之类的错误。我已经在谷歌上搜索过了,但仍然感到困惑。
我希望我的问题结构合理。如果没有,请告诉我
这是我的表格:
<div class="form" id="form-wrap-event" data=<%=current_user.id%>>
<%= render 'form' %>
</div>
这是我的事件控制器:
def create
@event = Event.create(event_params)
@event.host = current_user.host
@users = User.all
if !params[:event][:guest].blank?
params[:event][:guest].each do |id|
#finds guests and adds them to event's guest list
@event.guests << Guest.find_or_create_by(user_id: id)
@event.save
@user.host.events << @event
end
respond_to do |format|
format.html { redirect_to user_events_path }
format.json { render json: @event }
end
# render json: @event
# redirect_to user_events_path, flash: {success: "#{@event.name} is created!"}
else
render :new, flash: {danger: "Please enter all fields."}
end
end
def创建
@event=event.create(事件参数)
@event.host=当前用户.host
@users=User.all
如果!参数[:事件][:来宾].是否为空?
参数[:事件][:来宾]。每个do | id|
#查找来宾并将其添加到活动的来宾列表中
@因此,我放弃了ajax jquery语法,转而使用post方法
function getNewEvent(){
$('form').submit(function(event) {
//prevent form from submitting the default way
event.preventDefault();
let values = $(this).serialize();
$.post(`${this.action}`, values).done(function(data) {
console.log(data)
$('#app-container').html('')
const newEvent = new Event(data)
const htmlToAdd = newEvent.renderHTML()
$("#app-container").html(htmlToAdd)
});
});
}
因此,我放弃了ajax jquery语法,转而使用post方法
function getNewEvent(){
$('form').submit(function(event) {
//prevent form from submitting the default way
event.preventDefault();
let values = $(this).serialize();
$.post(`${this.action}`, values).done(function(data) {
console.log(data)
$('#app-container').html('')
const newEvent = new Event(data)
const htmlToAdd = newEvent.renderHTML()
$("#app-container").html(htmlToAdd)
});
});
}