###前提・実現したいこと
ruby on railsでメッセージをAPIとajax使用して作っています。
メッセージをほ保存する機能を実装中に以下の2回保存されてしまうエラーが発生しました。
###該当のソースコード
ruby
1 def create 2 @message = @chat_group.messages.new(message_params) 3 respond_to do |format| 4 if @message.save 5 format.json { render json: 6 { 7 name: @message.user.name, 8 date: @message.created_at.strftime('%Y/%m/%d %H:%M:%S'), 9 body: @message.body, 10 id: @message.chat_group.id, 11 } 12 } 13 format.html { redirect_to chat_group_messages_path(@chat_group) } 14 else 15 redirect_to chat_group_messages_path(@chat_group) 16 flash[:alert] = 'fail in post message' 17 end 18 end 19 end
javascript
1 $(function () { 2 $('#new_message').on('submit', function (e) { 3 e.preventDefault(); 4 $.ajax({ 5 url: "./messages.json", 6 type: 'POST', 7 datatype: 'json', 8 data: { 9 message: { 10 body: $(this).find('#message_body').prop('value'), 11 } 12 } 13 }) 14 .done(function (data) { 15 insert(data); 16 alert( "Data Saved: "); 17 }) 18 .fail(function () { 19 console.log("fail"); 20 }); 21 }); 22 }); 23});
###試したこと
saveとpostが行われていることによって2回保存されることまで把握したが、ajaxで行いためpostを外すことができません。またsaveを使用しなければ、created_atやupdated_atが入力されないため、うまくいきません。
このようにajaxを使用したい場合はどのように行うと1回のみの保存でうまくいくでしょうか。
db/migrate にtimestamp null: falseなど記入してもうまくいきませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/28 10:50