2016-10-15 11 views
0

私はイベントのためにdelivery_methodsを返す予定のAPIを持っています。管理者がログインして配信方法画面(たとえば説明を編集する)を表示すると、APIリクエストは作成または編集した配信方法を返す必要がありますが、DBに存在しない場合はデフォルトのものを生成する必要があります。Railsのインデックスコントローラすべてを検索またはレコードを作成

コントローラーのルートindexに入るのは良い考えですか? APIリクエストは/api/delivery_methodsのようになります。コードは次のようになります:

def index 
    @delivery_methods = DeliveryMethod.find_all_or_create_defaults(current_admin) 
end 

ここでは「ベストプラクティス」の意見を求めています。ありがとう!

+1

管理者モードでafter_createアクションを使用して、管理者が最初に登録されたときにデフォルト配信方法を設定する方が良いと思います。 –

答えて

2

リソースを変更/作成するGETルートを持つことは、良い方法とは考えられません。特に

、大会はGETと HEADメソッドは、アクション検索以外の を取るの意義を持つべきではないことが確立されてきました。これらの方法は「安全」と考えられるべきです。 これにより、ユーザエージェントはPOST、PUT 、DELETEなどの他のメソッドを特別な方法で表すことができるため、ユーザは という事実を意識して、おそらく安全でないアクションが要求されていることに気づくことができます。
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

の生成・デフォルト・レコードは代わりのいずれかによって、彼らが必要な場合は、シードファイル、rakeタスクによって、またはモデル・ライフサイクル・コールバックとして実行時に作成するために行わなければなりません。

+0

ありがとう!これは私が考えていたもので、ちょうど私が尋ねると思ったものです。 – dennismonsewicz

関連する問題