当我输入他们的名字时,我的程序会显示有关数据库中项目的信息。 它适用于ID和大多数名称,除非名称包含点。
match 'show/:name' => 'show#displayinfo'
在控制器中我有:
@details = Description.where(:name => params[:name] ).first
如果找不到名字该怎么办?
当我输入类似../show/Ruby
的内容时 - 它运行正常
但是../show/a.b
在开发日志中显示一个空页面并且没有错误:
Processing by ShowController#displayinfo as
Parameters: {"name"=>"a"}
如果我输入../show/a
,则按预期工作,没有错误,没有空视图。
除了重命名数据库中的项目之外,还有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
点后的所有内容通常被视为请求的格式。即在rails应用程序中配置html或json或任何mimetype。
以下是一个如何超越此默认行为的示例:http://zargony.com/2009/05/05/routing-parameters-with-a-dot
基本技巧是使用贪婪的正则表达式来解析参数。