2

Project というモデルがあり、「to_param」メソッドを次のように定義しました。

def to_param
  permalink
end

このパーマリンク プラグイン github.com/febuiles/make_permalink を使用しているので、p.permalink を呼び出すと ID 名が生成されます。

問題は、Web ブラウザーで /projects/1 と入力しても、URL が /projects/1-name に変更されないことです。どうすればそれを達成できますか?

http://railscasts.com/episodes/63にアクセスすると、URL が /63-name に変わります。

助言がありますか?

前もって感謝します

4

2 に答える 2

7

Ryan は適切な episode_url への条件付きリダイレクトを使用しているようです。Railscasts アプリケーションのソース コードは GitHub にあるので、彼のやり方を見ることができます。

ドリューが示唆するように、これはあなたの場合にはうまくいくはずです。

redirect_to @project, :status => 301 if params[:id] != @project.to_param?
于 2009-12-17T13:47:23.907 に答える
4

最も可能性が高いのは、 Friendly_id ジェムまたは類似のものを使用しています。

http://github.com/norman/friendly_id/

重要な部分は次のとおりです。

@post = Post.find(params[:id])
redirect_to @post, :status => 301 if @post.has_better_id?
于 2009-12-17T13:32:08.950 に答える