Первый вопрос на этом так идите простой пожалуйста. Я пишу драгоценный камень для использования в моем приложении rails. Жемчуг будет просто печатать в файле журнала информацию, переданную через параметры из действия в контроллере. Я работаю до тех пор, пока не захочу, чтобы файл отчета также напечатал имя действия, из которого поступает информация. Таким образом, пример будет выглядеть так:Как я могу поместить в действие Rails или имена контроллеров в свой Ruby Gem для использования в файле журнала?
Записанные данные: дата и время Отчет от действия: (имя контроллера + имя типа) Profile.update, а затем информация о параметрах. У меня есть работа, чтобы получить информацию о параметрах с помощью кода ниже.
Я прокомментировал ту часть, где, как я думал, принесет данные для меня. получив сообщение об ошибке. Любые рекомендации будут высоко оценены. Благодарю.
# initializes file and writes-only at end of file if exists or creates new one
def self.open(filename)
@filename = File.open(filename,'a+')
end
# method to take in any amount of parameters and write to file
def self.usageLog (*items)
ReportLogger.open("UsageLogging.txt")
# string actionName = controllerContext.RouteData.values["action"].ToString()
@filename.print("Logged Details: " + Time.now.strftime("%d/%m/%Y %H:%M:%S") + "\n")
# @filename.print("Report Action: :" + actionName)
items.each do |item|
@filename.print(item)
end
@filename.puts(" -EndLog" + "\n" + " - - - - - - - - - - - - - - ")
end
Внесены изменения - я играл с этим, но не мог заставить его работать. Я изменил контроллер, чтобы вызвать ReportLogger.usageLog (profile_params), чтобы это было связано с всеми параметрами? Я изменил код Gem, как показано ниже, но, похоже, он не хочет втягивать детали контроллера в журнал.
# method to take in any amount of parameters and write to file
def self.usageLog(params)
ReportLogger.open("UsageLogging.txt")
# string actionName = controllerContext.RouteData.values["action"].ToString()
#controller_name = params["controller"]
#action_name = params["action"]
#other_params = params.reject do |k,v|
# %w(action controller).include? k
#end
@filename.print("Logged Details: " + Time.now.strftime("%d/%m/%Y %H:%M:%S") + "\n")
#@filename.puts(controller_name)
#@filename.print("Report Action: :" + controller_name)
controller_name = params[:controller]
@filename.puts(controller_name)
params.each do |param|
@filename.print(param.to_s + "\n")
end
@filename.puts(" -EndLog" + "\n" + " - - - - - - - - - - - - - - ")
end
Отчет журнала выглядит следующим образом:
Записан Детали: 02/12/2015 13:11:11
[ "имя", "Брэдли"] [ "PHONE_NUMBER", «087 6312683 "] [" image ", #, @ original_filename =" IMG_0001.jpg ", @ content_type =" image/jpeg ", @ headers =" Content-Disposition: form-data; name = \ "profile [image] \ "; filename = \" IMG_0001.jpg \ "\ r \ nContent-Type: image/jpeg \ r \ n">] ["bio", "New feck, shit!"] -EndLog
Если вы profile_params вы получите sanized список только из профиля подмножества. Подумайте, назовите его как: ReportLogger.usageLog (params). – rlarcombe
Теперь я пойду. Спасибо rlarcombe за быстрый ответ и помощь. – Bradley
Я немного поправил свой ответ. – rlarcombe