0

オンラインで見つけたコードを使用しています。

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

この関数を何に渡す必要があるか、そしてそれがどのように正確にそれが行うことを達成するかについての考えはありますか?

ありがとう!

4

2 に答える 2

3

「オプション」とは何であるかは述べられていませんが、Rubyではキーと値のペアのハッシュとしてオプションをメソッドに渡すことが非常に一般的であるため、オプションはまさにそれです(99%の確実性)。これは、コードの残りの部分を理解するための鍵となる部分です。

返されたオブジェクトの「真実性」を利用しながら、キーと値のペアを引き出して1回の移動で値を割り当てるために、ハッシュの#deleteメソッドが使用されていると思います。

http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-delete

また、「真実性」とは、Rubyでは、「nil」と「false」を除くすべてのオブジェクトが「true」と評価されることを意味します。

残りは、他の言語で見られるような単純なif-else制御フローロジックなので、これが理にかなっていることを願っています。

于 2012-05-14T23:14:35.233 に答える
1

これにより、オプションにidまたはurlが見つかった場合に、「/ people / id=foo」または「/people/ url = foo_with _%_escapes」という形式のパスが作成されます。副作用として、オプションから見つけたものを削除します。どちらも見つからない場合は、「/ people /〜」と表示されます。

于 2012-05-14T23:12:46.577 に答える