我遇到Ruby和URI的问题。我想测试一下我的推荐人:
控制器:
@referer = URI(request.referer).path
查看:
<% if (@referer == '/search') %>
<p><%= link_to('<< Back to results', :back)%></p>
<% else %>
<p>Tadamm</p>
<% end %>
问题: 如果有一个推荐人,比如&#34;搜索&#34;,那就没关系。当没有引用时,比如直接访问,我有这个错误:
错误的参数(预期的URI对象或URI字符串)
你能帮助我吗?
答案 0 :(得分:3)
@referer = URI(request.referer).path
URI
方法需要“URI对象或URI字符串”。但如果没有引用者,那么你就不会给它们任何一个。这相当于调用URI(nil).path
。快速解决方法是:
@referer = request.referer && URI(request.referer).path
这样,如果没有引用者,@referer
将设置为nil
,您的if
语句将按预期工作。
答案 1 :(得分:1)
@referer = request.referer ? URI(request.referer).path : nil