2016-09-02 6 views
0

私のアプリケーションの管理者設定を構成するために、私はAdminコントローラとAdminConfigモデルを作成しました。複数のDBエントリを同時に編集するRESTfulな方法

Adminコントローラにはいくつかのカテゴリ(システム、ファイル、フォルダなど)があり、AdminConfigモデルでそれらを簡単に区切りたいのですが、dbにカテゴリ列を設定します。 しかし、私は本当にRESTfulな方法でそれをやりたいと思いますし、レールでどうやってやるのか分かりません。

各DB行を別々に編集したいが、それらをグループ化したい。

例:私が持っているファイルカテゴリに:

  • 拡張子それぞれがするadminconfigで個別のエントリである
  • サブフォルダの深さ

を無視する

  • EXIFタグを探すためにそのようなモデル:

    • 名前|値|カテゴリ
    • 拡張子| .jpg、.png、.avi |ファイル
    • exif_t​​ag | |ファイル
    • subfolder_depth | 3 |ファイル

    (申し訳ありませんテーブルがここで働いていない)

    は、だから私は、ページ上でそれらのすべてを見せたいと、私はそれらを編集するとき、私はそれらすべてを更新します。しかし、私はそれを正しく行う方法を知らない。

    明らかに私のやり方を変えることができます。つまり、DBを1行== 1つのカテゴリに変更することはできますが、それ以上の設定を追加するのが難しくなるため、

  • 答えて

    0

    すべての設定が同じコレクションに属している場合(たとえば、いくつかのExifTagモデル)、RESTでは禁止されていないコレクションを修正できます(独自のアクションを定義する必要がありますが、 Railsのコレクション)。

    PATCH [{id: 3, name: 'Paul'}, {id: 4, name: 'Dan'}] 
    

    設定は一つのモデルに属するすべての場合 - あなたは、そのモデルにパッチを適用し、ネストされた属性として他のモデルにデータを渡すことができ、Railsはあなたがそれを行うことができます。

    PATCH {id: 1, hobbies_attributes: [{id: 1, name: 'Hiking'}], house_attributes: { location_attributes: { city: 'Vancouver' }} 
    

    あなたはお互いに無関係な2つの異なるモデルにパッチを適用するようにこれらの非は、場合 - その後、RESTでそれを行うには、「健全な」方法はありません。私はいくつかの素晴らしいフロントエンドに行くことを提案することができます。これは編集時に異なるルートに異なる要求を送信し、異なるモデルを更新します。それは最もクリーンな方法でしょう。

    関連する問題