我正在使用我在网上找到的一些代码:
def person_path(options)
# This is where the path of the query is constructed.
path = "/people/" # For this section of the LinkedIn API
if id = options.delete(:id)
path += "id=#{id}"
elsif url = options.delete(:url)
path += "url=#{CGI.escape(url)}"
else
path += "~"
end
end
我不完全确定它的作用。我想要做的是让它构建一个像这样的字符串:http://api.linkedin.com/v1/people/~:(current-status)我从这里的LinkedIn开发人员文档中得到:https://developer.linkedin.com/documents/profile-api
关于我应该通过这个功能以及它如何完成它的功能的任何想法?
谢谢!
答案 0 :(得分:3)
虽然没有说明'选项'是什么,但是将选项传递给方法作为Ruby中的键值对的Hash是非常常见的,所以我会说选项就是这样(99%确定) 。这是理解其余代码的关键部分。
我相信正在使用散列上的#delete方法来拉出键值对并在一次移动中分配值,同时利用返回的对象的“真实性”。
http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-delete
通过“真实性”,我的意思是在Ruby中,除了'nil'和'false'之外,所有对象都评估为'true'。
其余的很简单if-else控制流逻辑,你会看到任何其他语言,所以我希望这是有道理的。
答案 1 :(得分:1)
如果在选项中找到id或url,则只创建“/ people / id = foo”或“/ people / url = foo_with _%_ escapes”形式的路径。作为副作用,它会从选项中删除它找到的那个。如果找不到任何一个,则给出“/ people /~”