2012-02-01 8 views
1

私は見た映画を少しデータベースに持っています。今、私は映画の詳細を表示したいので、希望の映画のプロフィールはアドレスexample.com/movies/21にあります。 しかし、私はより良いURLアドレスのすべての映画のプロフィールページを持っています。例えば、example.com/lords-of-the-ringsです。Rails 3 - example.com/whatever-i-needの経路を設定する方法

どうすればいいですか?ただ、答えを導くのに役立つ

答えて

2

config/routes.rbMovie.permalink

のように、新しいフィールドにURL名を格納します。

MyApp::Application.routes.draw do 
    match "movies/:permalink" => "movies#show" 
end 

そして、あなたのコントローラで:

class MoviesController < ApplicationController 
    def show 
    @movie = Movie.find_by_permalink(params[:permalink]) 
    end 
end 

の詳細についてはレール内のルート:http://guides.rubyonrails.org/routing.html

0123このアプローチのような https://github.com/Sutto/slugged

多くの人々:

-1

、あなたのような何かをできるようになる。その場合のparamsをつかん、

http://example.com/movies/lord-of-the-rings 

を[:ID]そのURLからは簡単です。

あなたはその最後の生成を自動化することができます:モデルのto_paramを変更することでID:ID形式:

class User < ActiveRecord::Base 
    def to_param # overridden 
    name 
    end 
end 

その後、あなたは新しいを反映するために、コントローラのshowメソッドを変更することができます。

お使いのモデルで
user = User.find_by_name(params[:id]) 
1

は、酔っぱらった宝石を使用することを検討してください。
レール3+

関連する問題