如果referer =“/ search”,请执行X,否则执行Y:“错误的参数(预期的URI对象或URI字符串)”
我有Ruby和URI的问题。 我想测试一下我的推荐人:
- 如果referer包含“/ search”,则显示X.
- 否则显示Y.
控制器:
@referer = URI(request.referer).path
视图:
<%= link_to('<
Tadamm
问题:当有一个引用者,比如“搜索”时,它没问题。 当没有引用时,比如直接访问,我有这个错误:
坏参数(预期的URI对象或URI字符串)
你能帮助我吗?
@referer = URI(request.referer).path
URI
方法需要“URI对象或URI字符串”。 但如果没有引用者,那么你就不会给它们任何一个。 这相当于调用URI(nil).path
。 快速解决方案是:
@referer = request.referer && URI(request.referer).path
这样,如果没有引用,则@referer
将设置为nil
,并且if
语句将按预期工作。
@referer = request.referer ? URI(request.referer).path : nil