0

Railsのレコードの特定の属性を次のようなURLに追加しようとしています。

domain.com/share/5

5レコードIDはどこにありますか)次のようになります。

domain.com/share/johnsmith/5

レコードのどこjohnsmithに保存されますか5。私はこれらの2つのルートを交互に使用して、成功しません。

get "/share/:name/:id" => "share#show"
resources :share, :only => [:show]

そして、これら2つの方法の間:

share_path(doc.user.name, doc)
share_path(doc)

のshowメソッドShareControllerはかなり標準的です。


問題:

ビューで使用すると、の代わりに、share_path(doc.user.name, doc)へのリンクが生成されます。/share/johnsmith.5/share/johnsmith/5

4

2 に答える 2

1

get "/share/:name/:id" => "share#show"仕事をする必要があります。しかし、あなたはのルートの順序を見なければならroutes.rbないかもしれません、多分Railsは間違ったルートを取りましたか?

何が起こっているかを確認するための最良のヒント:

ブラウザで(またはを使用して)URLを呼び出してから、開始した(または)curlコンソールを調べます。rails srails server

そこに次のようなものが表示されます。

Processing by ShareController#show
Parameters: {"id"=>"5", "name"=>"johnsmith"}

方法についてpath

を使用するだけrake routesで、使用可能なパスメソッドがわかります。

于 2013-03-01T01:22:51.620 に答える
0

何が起こったのかわかりませんが、これで解決しました:

get "/share/:name/:id" => "share#show", :as => :share
share_path(doc.user.name, doc)

.とはまったく/発行されません。私はすべてを再起動しました、そしてそれはなくなりました。

于 2013-03-01T02:45:37.120 に答える