0

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

ご協力いただきありがとうございます

4

1 に答える 1

0

使用したくparams[:abbr]ないparams[:id]. 使用する場合は:id、ルートを次のように変更し'cars/:id'ます'cars/:abbr'

于 2012-05-22T04:42:14.560 に答える