我正在提出请求 http://localhost:3000/templates/2.jpg?template_usage=0
一切正常。 但是当我提出要求时 http://localhost:3000/templates/2.jpg%3Ftemplate_usage%3D0
我收到了 ActionController :: UnknownFormat - ActionController :: UnknownFormat: 因为控制器知道格式是jpg?template_usage = 0
这是预期的行为吗?我怎么能解决这个问题?
这是控制器代码
def show
respond_to do |format|
format.html do
... return html
end
format.jpg do
... return jpg
end
end
end
答案 0 :(得分:0)
这是完全正确的,它正是逃避字符的目的....如果你想要一个?
作为数据传递而不是作为参数的开始,你将逃避它。
如果由于某种原因你必须通过转义字符,那么你必须自己解析格式,但这是代码味道。
def show
my_format = params[:format].split('?').first
case my_format
when 'jpg'
...
请注意,您还需要传递任何参数并自行解析。