2011-07-20 61 views
0

如何使用地圖(&:名)速記紅寶石如果速記+地圖速記

condition ? map(&:name) : name

如果速記裏面?

我得到了語法錯誤,ruby試圖評估第一個冒號。

+1

你能添加一個完整的,工作代碼片斷這說明問題了嗎? – maerics

回答

1

目前還不清楚究竟你的問題是什麼,但這裏是用「map(&:name)」內部條件的方式:

require 'ostruct' # For demonstration using OpenStruct. 
arr = [OpenStruct.new(:name => 'Foo'), 
     OpenStruct.new(:name => 'Bar'), 
     OpenStruct.new(:name => 'Gah')] 
name = 'Testing' 
(true ? arr.map(&:name) : name) # => ["Foo", "Bar", "Gah"] 
(false ? arr.map(&:name) : name) # => "Testing" 
+0

謝謝,圍繞帶括號的作品表達。 – rubies