0

次のようなルートに従って画像のコレクションを表示するアプリがあります。

client '/{{_type}}', controller: 'main', action: 'index'
client '/', {}

アイデアは、次のようなクエリMainController#indexを見て実行できるようにすることです。params._type

@uploads = store._uploads.where({category: params._type})

//spotlightなどのリンクを含むナビゲーション バーがあります/nature。最初のものはデフォルト ルートと一致するため、indexアクションが呼び出されます。次に、リンクしているナビゲーション項目をクリックする/spotlightと、アクションが再度呼び出されますindex(期待される応答)。しかし...アクションのナビゲーション項目をクリックしてnatureindex呼び出されず、コレクションは更新されず、カテゴリに対応する画像は表示されません。

これを読んだので、ルーティングがどのように機能するかについて「Rails」ビューを取っている可能性があります。

リンクがクリックされ、新しい URL をレンダリングするコントローラー/ビューが現在のコンポーネント (または含まれているコンポーネント) 内にある場合、ページはリロードされず、URL は HTML5 履歴 API を介して更新されることにも注意してください。 、および params ハッシュが更新され、新しい URL が反映されます。これらの変更を params で使用して、URL に基づいてさまざまなビューをレンダリングできます。

Volt ドキュメントからの上記の引用は、私が概説したことを達成するためのルートを当てにできないことを意味します。

この目標を達成するための「正しい」方法を明確にできる人はいますか?


@ryanstout の回答を追加すると、適切なコード形式でこれに影響します。

client '/{{_type}}', controller: 'main', action: 'index'
#          ^^^  Note that the underscore may not be included
#               here or you will have an undefined value

def uploads
  store._uploads.where({category: params._type})
end

2 番目の部分では、ルートが変更されたときに変更がページに影響するリアクティブなデータ ソースを作成できます。

4

1 に答える 1