Установите I18n Gem
и в config/environment/development.rb
добавьте эту строку
config.i18n.default_locale = :fr #:fr is for french language for example
В шаблонах направляющих можно сделать
<%= debug an_object %>
и это сделает хороший HTML ПРЕД вывод.
Попытайтесь использовать стр. Необходимо будет потребовать его в сценариях (или в irb, если .irbc уже не сделает этого):
require 'pp'
Затем Вы можете 'PrettyPrint' объект таким образом:
pp object
Вместо того, чтобы требовать 'стр' и использовать стр, можно просто сделать
p object
Протестированный пример
require 'pp'
class A
def initialize
@a = 'somevar'
@b = [1,2,3]
@c = {'var' => 'val'}
end
end
a = A.new
pp a # Gives -> #<A:0x2c6d048 @a="somevar", @b=[1, 2, 3], @c={"var"=>"val"}>
p a # Gives -> #<A:0x2c6d048 @a="somevar", @b=[1, 2, 3], @c={"var"=>"val"}>. No need to require 'pp'
Существует метод inspect
который помогает. Иногда вызов to_s
метод на объекте поможет (to_s, возвращает строковое представление объекта). Можно также запросить methods
, local_variables
, class_variables
, instance_variables
, constants
и global_variables
.
p ['Hello',"G'day",'Bonjour','Hola'].inspect
# >> "[\"Hello\", \"G'day\", \"Bonjour\", \"Hola\"]"
p ['Hello',"G'day",'Bonjour','Hola'].to_s
# >> "HelloG'dayBonjourHola"
p Array.new.methods
# >> ["select", "[]=", "inspect", "compact"...]
monkey = 'baboon'
p local_variables
# >> ["monkey"]
class Something
def initialize
@x, @y = 'foo', 'bar'
@@class_variable = 'gorilla'
end
end
p Something.class_variables
# >> ["@@class_variable"]
s = Something.new
p s.instance_variables
# >> ["@x", "@y"]
p IO.constants
# >> ["TRUNC", "SEEK_END", "LOCK_SH"...]
p global_variables
# >> ["$-d", "$\"", "$$", "$<", "$_", "$-K"...]
Проверьте руководство для отладки направляющих: http://guides.rubyonrails.com/debugging_rails_applications.html
подсказки: сценарий/консоль является большим попробовать материал в контексте Вашего сценария приложений / сервер - отладчик для запуска сервера с включенного отладчика, можно затем использовать 'отладку' в коде для вторжения в интерактивную оболочку
Один из подходов, на который я часто опираюсь, заключается в следующем:
logger.debug "OBJECT: #{an_object.to_yaml}"
Легко читать, хотя для больших объектов он может стать немного громоздким.
Думаю, я немного опоздал с этим , а как насчет logger.info [отладка | предупреждение]? Используйте это из контроллеров и моделей. Он будет отображаться в ваших файлах журнала (development.log в режиме разработки); и вышеупомянутый <% = debug ("str:" + str)%>
для представлений.
Это не точные ответы на ваши вопросы, но вы также можете использовать скрипт / консоль для загрузки вашего приложения rails в интерактивный сеанс.
Наконец, вы можете поместить отладчик в строку вашего приложения rails, и браузер "зависнет", когда ваше приложение выполнит эту строку, и вы сможете находиться в сеансе отладки, начиная с той строки, в которую вы поместили отладчик. исходный код.
t точные ответы на ваши вопросы, но вы также можете использовать скрипт / консоль для загрузки вашего приложения rails в интерактивный сеанс.Наконец, вы можете поместить отладчик в строку вашего приложения rails, и браузер "зависнет", когда ваше приложение выполнит эту строку, и вы сможете находиться в сеансе отладки, начиная с той строки, в которую вы поместили отладчик. исходный код.
t точные ответы на ваши вопросы, но вы также можете использовать скрипт / консоль для загрузки вашего приложения rails в интерактивный сеанс.Наконец, вы можете разместить отладчик в строке вашего приложения rails, и браузер "зависнет", когда ваше приложение выполнит эту строку, и вы сможете находиться в сеансе отладки, начиная с той строки, в которую вы поместили свой отладчик. исходный код.