在 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
谢谢你的帮助