在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])
状态#show页面抛出错误(nil:NilClass的未定义方法`fullname'),因为路由似乎没有在模型中找到 abbr 。
运行佣金路线,我得到:
root / states#index
state_abbr /cars/:abbr(.:format) states#show
感谢您的帮助
答案 0 :(得分:0)
您想使用params[:abbr]
而不是params[:id]
。如果您想使用:id
将路线改为'cars/:id'
而不是'cars/:abbr'