2016-06-14 10 views
1

rails-apiでRails 4.2でActiveAdmin(マスター)を使用しています。私はAAが適切に動作するように、すべての適切な設定を行った。私はインデックスページ、ショー、編集フォームなどを使うことができます。しかし、何らかの理由で破壊的な行動を取る時が来たら、AAは適切なhttp動詞の代わりにPOSTを使います。私はクロムコンソールからのcURLとして要求をコピーすると、からHTTPメソッドを変更PATCH/DELETEの代わりにPOSTを使用するActiveAdmin

Noルート一致[POST] "/管理/ admin_users/1"

:結果は404ではありませんPOSTをDELETEにすると、すべて正常に動作し、ユーザーは削除されます。では、なぜActiveAdminはPOSTを使用していますか?

答えて

0

私のミドルウェアスタックにRack::MethodOverrideを追加する必要がありました(rake middlewareを実行して欠落していることを確認できます)。

はそうのようにそれを追加します。

# config/application.rb 
module MyApi 
    class Application < Rails::Application 
    config.middleware.use Rack::MethodOverride 
    end 
end 
0

私はactiveadmin 1.0.0とRails 5.0.2を使用して、これと同じ問題がありました。フォームが正しいHTMLを持っていますが、コントローラはPOSTを受け取った:

<input type="hidden" name="_method" value="patch"> 

私がチェックし、Rack::MethodOverrideミドルウェアは、場所にありました。

私の問題は、permit_params:https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parametersを修正して修正されました。

私はそれがPOST/PATCHにどのように影響するのか分かりませんが、それはありません。

関連する問題