2012-02-25 11 views
3

それは私が明示のlink_toコードを介してビデオオブジェクトかIDを通過しなかったという意味に自動的に動画のIDを渡していたリンクをクリックすると、私は、のlink_toコードlink_toはコントローラを指定したときに自動的に渡しますか?

<%= link_to "#{(pages_counter/2) + 1}", { controller: "videos", action: 'videos_navigate', offset: pages_counter }, remote: true %> 

を持っています。上記のコードで見られるコントローラとアクションを直接識別したので、これは起こっていますか?

サンプルURLが生成され、事前に感謝:?/動画/ videos_navigate/1オフセット=あなたの代わりに、ルートに直接リンクしていないのはなぜ2

+0

生成されたURLを表示できますか? –

+0

ページネーションリンクを作成していますか?あなたがページネーションを使用していない理由は何ですか? – fatfrog

+0

@fatfrog私はあなたがそれを言及するまでページめくりに慣れていませんでした。はい、私はページネーションのリンクを作っています。私は宝石を見てみましょうまだid:が渡されている理由を知っていいだろう。 – Steve

答えて

2

URLに既にIDが含まれていて、link_toにIDが指定されていないショーページにいる場合は、URLからIDを取得します。

したがって、2を記録して同じリンクをクリックすると、URLは/ videos/videos_navigate /となりますが、コントローラを指定しないと同じことが起こります。 2?offset = 2

+0

これは何が起こっているのです、ありがとう – Steve

0

。それはすでにパスを持っていない場合は、

<%= link_to "#{(pages_counter/2) + 1}", videos_navigate_path, :remote => true %> 

:、彼はコンソールrake routes INTを実行のように、それはあなたのvideos_navigateパスのパス名をプリントアウトする必要があります...あなたは、おそらくこのようにそれにリンクすることができますconfig.routes.rbファイル内のアクションのルート宣言に:as => 'videos_navigate'を追加すると、1つを与えることができます。 Read here for more information on routing and paths

+0

私は経路にマッチしていて、パス名を与えません:match 'concerts/videos_navigate /:id' => 'concerts#videos_navigate' – Steve

+0

OKです!ありがとう、それはほとんどのレールdevsの好ましい方法ですか? – Steve

+1

Yessir。あなたは 'concerts/videos_navigate /:id '=>' concerts#videos_navigate '、:as =>' videos_navigate''に' match 'コンサートだけを変更する必要があります。 'rake routes'を実行すると、名。そのようなあなたのルートに '/:id'があるなら、それは最後にパラメータを期待していると言われています。ですから、おそらく 'videos_navigate_path(1)'やその他のID番号にリンクする必要があります。 – Batkins

関連する問題