0

にはhttp://localhost:3000/books、書籍のリストがあるインデックス ページがあります。

ここに画像の説明を入力

リンクの 1 つをクリックすると、それがバインドされているアクションbookが起動されます。

ここに画像の説明を入力

ただし、本のページの 1 つからリンクの 1 つをクリックしても、bookアクションは発生しません。

ここに画像の説明を入力

リンクがクリックされると、インデックス ページと本のページの両方から URL が変更されることに注意してくださいbook。ページ。このような状況を修正するにはどうすればよいですか?

参考までに、この問題を再現できるリポジトリを次に示します。

4

3 に答える 3

0

返事が遅れて申し訳ありません。これは既知の問題であり、私の修正リストに含まれています。GDP2 で述べたように、.watch! を使用できます。または、おそらくより良い方法は、コントローラをより機能的な方法で記述して、インスタンス変数を設定する代わりに、params から取得されるデータがメソッドで使用されるようにすることです。

たとえば、次のようなことを行う代わりに、クエリで params を使用する場合:

attr_reader :query
def index
  @item = store.items.where(name: params._name).first
end

次のようなことができます。

def query
  store.items.where(name: params._name).first
end

これは効率が悪いように見えるかもしれませんが、多くのキャッシュがあり、これはほとんど効率的です。

時間ができたら、アクセスされたデータが変更されたときにアクション メソッドを再トリガーするようにします。(すいません、たどり着けていないだけです。)

于 2015-08-27T05:46:11.003 に答える
0

結局のところ、Volt 計算はこの問題を解決する方法です。コレクションを使用するparamsことで、URL の変更に計算を付加できます。私はこの問題を解決し、 httpsbook ://github.com/ylluminarious/volt_action_problems/commit/5fcefc16d7b14a980f68ce572a80f25540d21636 のように URL の変更を実行するようになりました。

于 2015-08-26T23:51:42.730 に答える