ネストの量が変化する動的url_for

オブジェクトの管理(編集、削除など)に使用できるようにしたいオプションを含む配列を渡すことができるヘルパーメソッドを構築しています。メソッドの簡略化されたバージョンは次のようになります。

  def management_links(instance, actions, *parent)
    actions.each do |action|
      if (can? action, instance)
        has_options = true
        case action
          when :destroy
            options = {content: glyphicon('trash') + " Delete #{instance.class.to_s}", class: "delete #{instance.class.to_s.downcase}", method: :delete}
            url = url_for [parent, instance]
        end
      end
    end
  end

ご覧のとおり、これは、構造を取得するために1回ネストされた(1つの親モデルを渡す)オブジェクトに対して完全に機能します。

parent_model / parent_id / model / id / action

しかし今、私は2回ネストされたモデルを持っているので、これはもうそれをカットしません。配列[@ grandparent、@ parent]を渡そうとしましたが、url_forにすでに配列があるため、機能しません。

'unlimited'親オブジェクトを渡してurl_forで動作させる方法はありますか?

リチャードペック

*parent は常に配列の一部になります(存在する場合)。そのように宣言してから、インスタンスを配列にプッシュしてみませんか。

def management_links(instance, actions, *parent)
    parents = Array(parent) if parent
    new_url = parents ? parents << instance : instance

    actions.each do |action|
      if (can? action, instance)
        has_options = true
        case action
          when :destroy
            options = {content: glyphicon('trash') + " Delete #{instance.class.to_s}", class: "delete #{instance.class.to_s.downcase}", method: :delete}
            url = url_for new_url
        end
      end
    end
end

私はArray()それparentが正しいデータ型であることを確認するために使用ます(varの単一のインスタンスを渡すことができます)。


トピックから外れていますが、慣例を追求するために、複数のレイヤーによるネストについて読む必要があります

リソースは、1レベルを超えてネストしないでください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

可変量の辞書をネストする方法は?

分類Dev

多変量線形回帰のコストが高すぎる

分類Dev

パネル上でスクロールバーが移動する量を変更する

分類Dev

動的に変化する画像のURLをWebサイトから取得する

分類Dev

ネストされたforループの数を動的に変化させる

分類Dev

動的に変化するファイルリストのeslint

分類Dev

私の変量効果が別の変量効果の下にネストされている場合のRコード

分類Dev

2つの変量効果がネストされている場合のlme()単一変量交互作用項の適切な構文

分類Dev

ナイトが任意のスペースに移動するのに必要な最大移動量

分類Dev

AjaxリクエストのURLを動的に変更する

分類Dev

ネストされた要素でのドラッグ操作中にカーソルが不快に変化する

分類Dev

C#-インデックスの量が可変である配列を動的に作成します

分類Dev

反復回数が変化するネストされたループ

分類Dev

動的にインスタンス化されたコンポーネントでは、変更の検出が機能しないようです

分類Dev

ネストされたdict内のネストされたdict、それらを自動化する方法は?

分類Dev

動的に変化する背景色に基づいてテキストの色を動的に変更する方法

分類Dev

動的計画法によるテキスト正当化の時間計算量

分類Dev

AngularとNgRxのネストされた状態の変化に反応する

分類Dev

なぜテキストは活動が変化しないのですか?

分類Dev

url_for()を使用してFlaskに動的URLを作成する

分類Dev

1つのループ変数が他のループ変数に依存するネストされたループのベクトル化

分類Dev

ネストされたトレイトを使用するとPHPの動作が変わるのはなぜですか?

分類Dev

スクリプトの入力の可変数を自動化する

分類Dev

WordPressでスタイルシートのURLパスを動的に変更する

分類Dev

水平スクロールが移動すると、HighStockのy軸ラベルが自動的に変化します

分類Dev

ネストされた変量効果と関連する固定効果

分類Dev

ルートを変更するたびにangular2コンポーネントが再インスタンス化されるのはなぜですか?

分類Dev

ツリーパネルのストアを動的に変更する方法

分類Dev

子コンポーネントの動作を変更するホストコンポーネント

Related 関連記事

  1. 1

    可変量の辞書をネストする方法は?

  2. 2

    多変量線形回帰のコストが高すぎる

  3. 3

    パネル上でスクロールバーが移動する量を変更する

  4. 4

    動的に変化する画像のURLをWebサイトから取得する

  5. 5

    ネストされたforループの数を動的に変化させる

  6. 6

    動的に変化するファイルリストのeslint

  7. 7

    私の変量効果が別の変量効果の下にネストされている場合のRコード

  8. 8

    2つの変量効果がネストされている場合のlme()単一変量交互作用項の適切な構文

  9. 9

    ナイトが任意のスペースに移動するのに必要な最大移動量

  10. 10

    AjaxリクエストのURLを動的に変更する

  11. 11

    ネストされた要素でのドラッグ操作中にカーソルが不快に変化する

  12. 12

    C#-インデックスの量が可変である配列を動的に作成します

  13. 13

    反復回数が変化するネストされたループ

  14. 14

    動的にインスタンス化されたコンポーネントでは、変更の検出が機能しないようです

  15. 15

    ネストされたdict内のネストされたdict、それらを自動化する方法は?

  16. 16

    動的に変化する背景色に基づいてテキストの色を動的に変更する方法

  17. 17

    動的計画法によるテキスト正当化の時間計算量

  18. 18

    AngularとNgRxのネストされた状態の変化に反応する

  19. 19

    なぜテキストは活動が変化しないのですか?

  20. 20

    url_for()を使用してFlaskに動的URLを作成する

  21. 21

    1つのループ変数が他のループ変数に依存するネストされたループのベクトル化

  22. 22

    ネストされたトレイトを使用するとPHPの動作が変わるのはなぜですか?

  23. 23

    スクリプトの入力の可変数を自動化する

  24. 24

    WordPressでスタイルシートのURLパスを動的に変更する

  25. 25

    水平スクロールが移動すると、HighStockのy軸ラベルが自動的に変化します

  26. 26

    ネストされた変量効果と関連する固定効果

  27. 27

    ルートを変更するたびにangular2コンポーネントが再インスタンス化されるのはなぜですか?

  28. 28

    ツリーパネルのストアを動的に変更する方法

  29. 29

    子コンポーネントの動作を変更するホストコンポーネント

ホットタグ

アーカイブ