Можно ли напечатать строку в логгере разработки? - PullRequest
0 голосов
/ 25 января 2011

У меня есть некоторый код, подобный этому users_controller.rb, мне нужно напечатать строку № 30 в файле development.log

line#29  def selectrole
line#30    @userrole = RolesUser.find(:all, :conditions =>["p.user_id = ? and p.status = ? ",session[:user_id], params['status']])
line#31    logger.debug print_line(30)
line#32  end

Могу ли я увидеть 30-ую строку в моем файле development.log следующим образом

@userrole = RoleUser.find(:all, :conditions => ["p.user_id = ? and p.status = ? ", 1234, 'Active'])

Каков подход к написанию функции "print_line"?Вот мой код print_line?

def print_line(file_name, line) 
   counter = 1
   printline = "-------- NO SUCH LINE --------"
   File.open(file_name, "r") do |infile|
      while (line_text = infile.gets)
         if counter == line
            printline =  "#{counter} :: " +  line_text    
            break
         end 
         counter += 1
      end
   end
   printline
end

из этой функции я получаю вот так

 @userrole = RolesUser.find(:all, :conditions =>["p.user_id = ? and p.status = ? ",session[:user_id], params['status']])

Есть ли какой-нибудь способ найти и заменить переменные их соответствующими значениями?

1 Ответ

3 голосов
/ 25 января 2011

Предполагая, что вам в первую очередь интересно знать содержимое вашего :conditions, почему бы просто не сделать что-то вроде этого:

def selectrole
  conditions = ["p.user_id = ? and p.status = ? ",session[:user_id], params['status']]
  logger.debug(conditions)
  @userrole = RolesUser.find(:all, :conditions => conditions)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...