我有一个URL编码的资源,例如:
http://myurl/users/Joe%20Bloggs/index.xml
这是一个使用用户登录路径的RESTful webservice。问题在于rails中的控制器似乎无法解码%20。我收到以下错误:
ActionController::RoutingError (No route matches "/Joe%20Bloggs/index.xml" with {:method=>:post}):
我实际要做的是通过authlogic作为我的注册处理程序来实现以下两种选项之一:
要么(最好)允许用户使用带空格的用户名进行注册,并将其正确路由到我的控制器。默认情况下,Authlogic允许使用空格和@ / .字符,如果我可以使其正常工作,这对我来说就很好...
要么我可以限制authlogic禁止使用空格。我知道我可以通过以下方式实现:
.merge_validates_format_of_login_field_options...
但我不确定提供新的正则表达式和失败返回信息的正确语法是什么...
非常感谢任何建议!
id
,就不必费心确保slug是唯一的了:def to_param "#{id}-#{name.gsub(/\s+/, '-').gsub(/[^\w\-]/, '').slice(0..75)}" end
。这就是你所需的全部内容。 - Jonathan Julian