11

ruby on railsについて質問です

どうやら次のような発言がありました。

def sort_column
    Product.column_names.include?(params[:sort]) ? params[:sort] : "name"
end

私が読んだことから、このメソッドは params[:sort] に基づいて列をソートし、params がない場合、製品は「名前」でソートされると言われています。しかし、この文の書き方、特に 2 番目の「?」がわかりません。誰かが私にそれを説明できますか?

4

5 に答える 5

18

これは、理解しやすいように再配置されたコードです。

def sort_column
  cond = Product.column_names.include?(params[:sort]) 
  cond ? params[:sort] : "name"
  #  it's equivalent to this
  # if cond
  #   params[:sort]
  # else
  #   'name'
  # end
end

最初のクエスチョン マークはメソッド名の一部で、2 番目のクエスチョン マークは三項演算子の一部です (これについて読む必要があります)。

于 2012-06-25T14:31:51.433 に答える