Rails #classify странный вывод - PullRequest
0 голосов
/ 08 января 2011

с использованием rails 3.0.1 и ruby ​​1.9.2-p0

в консоли rails Я вижу следующее:

ruby-1.9.2-p0 > "login_controller".classify
 => "LoginController"

ruby-1.9.2-p0 > {:controller=>"login", :action=>"show"}[:controller]+"_controller".classify
 => "login_controller" 

ruby-1.9.2-p0 > "login_controller" == {:controller=>"login", :action=>"show"}[:controller]+"_controller"
 => true 

Почему classify возвращает 'login_controller'для одного и 'LoginController' для другого, когда ruby ​​говорит, что обе строки равны?

Ответы [ 2 ]

1 голос
/ 09 января 2011

Никогда не подводит,

Это приоритет оператора. Мне нужно сделать:

({:controller=>"login", :action=>"show"}[:controller]+"_controller").classify
0 голосов
/ 09 января 2011

Ваш порядок действий неверен. Во втором примере неявные скобки выглядят так:

{:controller=>"login", :action=>"show"}[:controller] + ("_controller".classify)

, поскольку . связывается до +. Чтобы это исправить, вы можете сделать это:

({:controller=>"login", :action=>"show"}[:controller] + "_controller").classify

т.е. включите скобки самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...