Я пытаюсь отобразить новый объект Event и получить данные на той же странице через JavaScript. Мне нужны результаты, чтобы показать в / users / 1 / events / new, где я и получил свою форму. Я использую Ajax Jquery запрос. Но URL продолжает возвращаться неопределенным.
Вот что я пытался поместить в этот раздел URL:
1) ${this.href}.json
2)'this.action'
3)
/ users / $ {e.target.data} / events` => Этот динамический код должен возвращать целое число.
Я получаю ошибки, такие как незаконный вызов и 422 (Unprocessable Entity). На что я погуглил, но все еще запутался.
Надеюсь, я хорошо структурирую свой вопрос. Если нет, пожалуйста, дайте мне знать.
вот моя форма:
<div class="form" id="form-wrap-event" data=<%=current_user.id%>>
<%= render 'form' %>
</div>
Мой current_user.id возвращает идентификатор текущего пользователя.
Вот мои events.js
function getNewEvent() {
$("#form-wrap-event").on("submit", (e) => {
e.preventDefault()
console.log("new event")
$.ajax({
method: "POST",
url: (I DON'T KNOW WHAT TO PUT HERE)
}).done(function(response){
console.log('the data is: ', response)
// console.log($(this).serialize())
// const values = $(this).serialize()
// $.post('/events', values)
// .done(function)(data) {
//
// }
})
})
}
Вот мой контроллер событий:
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