0

在 Rails 3.2.2 中,我想设置自定义 URL(使用状态 2 位数字:abbr,而不是默认的:id)

阅读谷歌结果和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'),因为路由似乎没有在模型中找到缩写词。

运行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 回答