ruby
1class TicketsController < ApplicationController 2 before_action :authenticate 3 4 def new 5 raise ActionController::RoutingError, 'ログイン状態で TicketsController#new にアクセス' 6 end 7 8 def create 9 ticket = current_user.tickets.build do |t| 10 t.event_id = params[:event_id] 11 t.comment = params[:ticket][:comment] 12 end 13 if ticket.save 14 flash[:notice] = 'このイベントに参加表明しました' 15 head 201 16 else 17 render json: { messages: ticket.errors.full_messages }, status: 422 18 end 19 end 20end 21
というコントローラーです。
javascript
1$(document).on 'ajax:success', '#createTicket', (xhr, data, status) -> 2 location.reload() 3 4$(document).on 'ajax:error', '#createTicket', (xhr, data, status) -> 5 form = $('#new_ticket .modal-body') 6 div = $('<div id="createTicketErrors" class="alert alert-danger"></div>') 7 ul = $('<ul></ul>') 8 data.responseJSON.messages.forEach (message, i) -> 9 li = $('<li></li>').text(message) 10 ul.append(li) 11 12 if $('#createTicketErrors')[0] 13 $('#createTicketErrors').html(ul) 14 else 15 div.append(ul) 16 form.prepend(div)
となっています。本来なら30文字以上のコメントをするとエラーが出るのですが、「送信中・・・」となり動作が止まります。
ticketモデルにもデータは入らなです。。。解決お願いします。
ちなみに環境はrails5です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。