2012-04-24 3 views
0

Я недавно задал вопрос (heres the link) об открытии ссылки на новой странице. Я обнаружил, что есть два ответа.Разница между: target => '_blank' и target: = "_blank"

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

Я надеялся, что кто-то сможет объяснить разницу между одинарной и двойной цитатами и почему обе эти работы работают. Я понимаю, что второй вариант возможен только в более поздних версиях рельсов (я использую 3.2.2).

+0

возможно дубликат [Какая разница между двоеточием ":" и жир стрелка "=>"] (http://stackoverflow.com/questions/8198811/whats-the-difference-between- толстая кишка и толстая стрелка) –

+0

Вы, вероятно, правы @muistooshort. Спасибо, что указал на другой пост. – glennm

+0

Не стоит беспокоиться, кажется, что это выглядит честно, и дубликатов трудно найти, поиск «=>» или «:» действительно не очень продуктивен :) –

ответ

5

в основном, это хэш в Ruby (для получения дополнительной информации, пожалуйста, обратитесь к «@mu слишком выстрелил» ресурс "s)

# 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 –

+0

ok, I обновили мой ответ, удалив «классический». :) –

+2

Но '=>' все еще не вещь 1,8, она абсолютно правильна и часто необходима в 1.9. Да, я нахожусь в крестовом походе против блестящего нового (и сломанного) альтернативного синтаксиса Hash literal :) –

-1
1.9.2-p290 :009 > { :name => "soundar" } == { name: "soundar" } 
=> true 
Смежные вопросы