2012-04-24 62 views
0

我最近問關於在新頁面打開鏈接的問題(heres the link)。我發現有兩個答案。區別:目標=>「_blank」和目標:=「_blank」

:target => '_blank' 
target: "_blank" 

我希望有人能解釋一下單,雙引號,以及爲什麼上述兩個工作之間的差別。我明白第二個選項只能在更新版本的rails上實現(我使用的是3.2.2)。

+0

的可能重複的[這是什麼結腸之間的差 「:」 和脂肪箭頭 「=>」](http://stackoverflow.com/questions/8198811/whats-the-difference-between-冒號和箭頭) – 2012-04-24 06:08:10

+0

你可能是對的@ muistooshort。感謝您指出其他帖子。 – glennm 2012-04-24 06:46:44

+0

不用擔心,這似乎拿出一個公平位和重複的都很難找到,搜索「=>」或「:」真的不是非常有成效的:) – 2012-04-24 07:03:44

回答

5

基本上,這是Ruby的哈希值,(更多信息,請參閱「@mu過短」的資源)

# always works (works both in Ruby 1.8 and 1.9) 
:target => '_blank'  

# works in 1.9 only 
target: "_blank" 

他們都可以分配散列的元素。

但是,下面的代碼是不正確的。

# this is incorrect 
target: = "_blank" 
+1

有作爲「經典」和「1.9」的風格沒有這樣的事,有一種永遠奏效的風格和新的替代的風格,只能在有限的情況下:http://stackoverflow.com/a/10004344/479863 – 2012-04-24 05:32:33

+0

好吧,我通過刪除「經典」更新了我的答案。 :) – 2012-04-24 05:59:52

+2

但是'=>'仍然不是1.8的東西,它在1.9中完全有效並且通常是必需的。是的,我正在討論閃亮的新的(和破碎的)替代哈希字面語法:) – 2012-04-24 06:03:47

-1
1.9.2-p290 :009 > { :name => "soundar" } == { name: "soundar" } 
=> true