私はこの問題について何も質問をしておらず、解決策を見つけることができません。ActionController :: MeetingsController#UnknownFormat update
私はここで会議を更新ボタンがあります。
<%= form_for(meeting) do |f| %>
<%= f.hidden_field :accepted, value: true %>
<%= button_tag(type: 'submit', class: "btn_primary") do %>
Accept <svg><use xlink:href="#checkmark"/></svg>
<% end %>
<% end %>
私は未知のフォーマットエラーを取得し、それはまだ更新されます。このエラーの原因は何ですか?
更新方法からrespond_to do |format|
を削除しようとしました。この1つのボタンの問題を解決しますが、ミーティング/アップデートを呼び出すプラットフォーム上の他のボタンをすべて破棄します。
class MeetingsController < ApplicationController
respond_to :json, :html
def update
respond_to do |format| **error highlights this line**
if @meeting.update(meeting_params)
format.json { render :show, status: :ok, location: @meeting }
else
format.html { render :edit }
format.json { render json: @meeting.errors, status: :unprocessable_entity }
end
end
end
end
コンソール:
Started PATCH "/meetings/224" for 127.0.0.1 at 2016-11-11 16:05:27 -0500
Processing by MeetingsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"hK6AoOZuw9DWyKUXw1dXWOSUolooWgBUPnkItUJX5Tm7XvimsHd9518pkqwVvNhUi3L3vlA4OZaJZiAgrbS0Ig==", "meeting"=>{"accepted"=>"true"}, "button"=>"", "id"=>"224"}
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
Meeting Load (0.2ms) SELECT "meetings".* FROM "meetings" WHERE "meetings"."id" = ? LIMIT 1 [["id", 224]]
(0.3ms) begin transaction
SQL (0.5ms) UPDATE "meetings" SET "accepted" = ?, "updated_at" = ? WHERE "meetings"."id" = ? [["accepted", "t"], ["updated_at", "2016-11-11 21:05:27.882521"], ["id", 224]]
(1.3ms) commit transaction
Completed 406 Not Acceptable in 24ms (ActiveRecord: 2.7ms)
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/meetings_controller.rb:65:in `update'
これは問題はなかった、と一見なしどこから出てきました。このエラーの原因は何ですか?ありがとう!
さて、それを得ました。これは修正されましたが、原因を明確にするだけで将来のことを知ることができます。リダイレクトを必ずしも必要としなくても、htmlとjsonの両方の方向を指定する必要があるたびに、ご協力いただきありがとうございます!! – gwalshington
@ gwalshingtonしかし、あなたはリロードのために何をすべきか知っているので、リダイレクトが必要です。たとえそれがちょうどredirect_toであっても:戻る。ページをリロードする必要がない場合は、ajaxで提出する必要があります。 – toddmetheny
更新後にページをレンダリングする場合は、format.html呼び出しが必要です。 – toddmetheny