我有一个rails model公司,并希望在其上有漂亮的网址而不是默认ID(出于安全原因)。对于大多数情况,它的工作原理。我注意到公司名称以句点结尾,我收到如下错误:
No route matches [GET] "/admin/companies/Baking%20co."
为了测试这一点,我删除了friendly_id实现并简单地覆盖了to_param方法
def to_param
name
end
并从
更改了控制器显示操作Company.find(params[:id])
到
Company.find_by_name(params[:id])
这与friendly_id方法具有相同的效果。我得到了大多数公司的出现但我仍然收到以句号结尾的名字的相同错误。
答案 0 :(得分:0)
根据this StackOverflow page,您是否尝试在format: false
文件中设置routes.rb
?
答案 1 :(得分:0)
我认为this StackOverflow page给出了更好的答案。导轨指南详细解释了here。
基本上,动态细分不接受点,所以你必须在你的路径文件中明确允许它们,如下所示:
resources :companies, constraints: { id: /[^\/]+/ }
根据指南允许除斜线以外的任何内容。