1

非リソース ルートのヘルパー url およびパス ヘルパーに問題があります。

Item他の属性の中で、sku属性を持つモデルがあります

したがって、デフォルトのルーティングは

resources :items

デフォルトのインデックス ルートを作成します

item GET        /items/:id(.:format)                              items#show

しかし、次のような URL に一致するようにそのルートをオーバーライドしたいと考えています。

/sku/:sku/id/:id

デフォルトの URL の代わりに:

/items/:id

したがって、次のルートを作成し、resources :items最初に一致するように上に配置しました。

get "sku/:sku/id/:id" => "items#show", as: "item"

に行くと正しく動作しwww.example.com/sku/2342/id/8484、正しいアイテムが表示されます。

ただし、私の問題は、オブジェクトを渡すitem_pathまたはヘルパーを使用したい場合です。item_url

目的のパスを取得する代わりに/sku/2342/id/8484、アイテムのIDが2回適用されたパスを取得しています/sku/8484/id/8484

Google とここで StackOverflow を数分間検索しましたが、答えが見つかりません。Rails ルーティングのドキュメントは既に読んでいますが、まだ成功していません。誰かが私を助けてくれることを願っています。

4

1 に答える 1

0

のようなことをしていますかitem_path(item, item)。それがうまくいくかどうかはわかりません。実際のオブジェクトを渡すと、idフィールドが取得されます。

試しましたitem_path(item.sku, item)か?

于 2013-10-11T05:11:44.393 に答える