私は見た映画を少しデータベースに持っています。今、私は映画の詳細を表示したいので、希望の映画のプロフィールはアドレスexample.com/movies/21
にあります。 しかし、私はより良いURLアドレスのすべての映画のプロフィールページを持っています。例えば、example.com/lords-of-the-rings
です。Rails 3 - example.com/whatever-i-needの経路を設定する方法
どうすればいいですか?ただ、答えを導くのに役立つ
私は見た映画を少しデータベースに持っています。今、私は映画の詳細を表示したいので、希望の映画のプロフィールはアドレスexample.com/movies/21
にあります。 しかし、私はより良いURLアドレスのすべての映画のプロフィールページを持っています。例えば、example.com/lords-of-the-rings
です。Rails 3 - example.com/whatever-i-needの経路を設定する方法
どうすればいいですか?ただ、答えを導くのに役立つ
、config/routes.rb
でMovie.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多くの人々:
、あなたのような何かをできるようになる。その場合の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])
は、酔っぱらった宝石を使用することを検討してください。
レール3+