Rails 3.2.2 で、カスタム URL をセットアップしたい (デフォルトの :id ではなく、状態 2 桁の :abbr を使用)
Googleの結果とstackoverflowページを読んで、私はこれを思いつきました:
ルート
match 'cars/:abbr' => 'states#show', :as => 'state_abbr'
モデル
def to_param
abbr
end
コントローラ
@state = State.find_by_abbr(params[:id])
state#show ページはエラー (nil:NilClass の未定義メソッド `fullname') をスローしています。これは、ルーティングがモデル内でabbrを見つけていないように見えるためです。
rake routesを実行すると、次のようになります。
root / states#index
state_abbr /cars/:abbr(.:format) states#show
ご協力いただきありがとうございます