所以我对Ruby很陌生,而且我完全陷入困境。我正在使用属性为url
的对象呈现链接。但是,我想测试一个理论,而不是像我想要的那样创建一个不同的URL。我想要做的是查看Argument对象的ID,如果它与指定对象中的键匹配,那么我想改变URL的构造方式。
def perform_redirect(myObj)
redirects = { 111 => 222, 333 => 444, 555 => 666 }
if (redirects.has_key? myObj[:id])
# I'm stuck here, ideal return is:
return "https://myurl.com/#{redirects.assoc myObj[:id][1]}"
else
return myObj[:url]
end
end
我正在阅读一些关于Ruby数组的东西,它并没有很多意义,或者我应该采用一种完全不同的方式解决这个问题。
预期结果
更改网址
myObj = {id: 111, url: "https://somesite.com/111"}
myObj.id
与key
redirects
匹配
https://myurl.com/222
请勿更改网址
myObj = {id: 12345, url: "https://somesite.com/12345"}
myObj.id
与key
redirects
不符
myObj.url
https://somesite.com/12345
答案 0 :(得分:0)
正如@wiesion在评论中提到的那样,没有正确调用所需数据
return "https://myurl.com/#{redirects.assoc myObj[:id][1]}"
需要
https://myurl.com/#{redirects[myObj[:id]]}