Ваш порядок действий неверен. Во втором примере неявные скобки выглядят так:
{:controller=>"login", :action=>"show"}[:controller] + ("_controller".classify)
, поскольку .
связывается до +
. Чтобы это исправить, вы можете сделать это:
({:controller=>"login", :action=>"show"}[:controller] + "_controller").classify
т.е. включите скобки самостоятельно.