2015-01-21 5 views
0

New Relic документация говорит: To prevent page load timing (sometimes referred to as real user monitoring or RUM) for all actions in a controller, add a call like this to the controller class: newrelic_ignore_enduserнеопределенными локальная переменная или метод `newrelic_ignore_enduser»

Я добавил вызов newrelic_ignore_enduser следующим образом, и получил ошибку undefined local variable or method 'newrelic_ignore_enduser'.

books_controller.rb

class BooksController < ApplicationController 
    require 'newrelic_rpm' 
    ... 
    def show 
     newrelic_ignore_enduser 
    end 
    ... 
end 

Gemfile

gem 'newrelic_rpm', '~> 3.9.9.275' 

Вопрос: Что мне нужно сделать (require что-то возможно?) Для того, чтобы быть в состоянии назвать это метод?


Update

Oops! Ранее я включил newrelic_rpm в Gemfile в группу production. Теперь я добавил его в group :development, :production do, и это помогло. Второе, что мне нужно было сделать, это вызвать метод как newrelic_ignore_enduser only: :show с уровня class (как показано в выбранном ответе), а не из-за действия, которое я попытался выполнить. Обратите внимание, что в идеале я бы предпочел назвать этот метод изнутри действия и на основе условия.

+1

На странице вы связаны с: Если вы получаете 'NoMethodError' при попытке использовать' newrelic_ignore' внутри контроллера Rails или приложения Синатра, убедитесь, что перед вызовом 'newrelic_ignore' внутри вашего определения класса требуется' newrelic_rpm'. – ptd

+0

Спасибо. Я попробовал 'require 'newrelic_rpm'', но, к сожалению, это не помогло. – user664833

+0

На самом деле, это помогло - мне просто пришлось комментировать это с ответом и комментарием @aguardientico. Еще раз спасибо! – user664833

ответ

3

Я думаю, вы должны использовать newrelic_ignore_enduser следующим

class BooksController < ApplicationController 
    newrelic_ignore_enduser only: :show 
    ... 
end 
+0

Спасибо, но это не помогло - оно все равно дает ту же ошибку. – user664833

+1

Вы добавляете драгоценный камень 'newrelic_rpm' только для производства? или также для dev? – Aguardientico

+0

О, ничего себе, отличный вопрос! Оказывается, у меня было это только для 'производства'. К сожалению, мой надзор! Я добавил, что это развитие, и ваш ответ правильный! Хотя это слишком плохо, я не могу назвать этот метод изнутри действия и зависит от состояния, например. 'newrelic_ignore_enduser if some_condition' - у меня есть определенное условие в действии' show', в котором я не хочу, чтобы Javascript вводился, но в противном случае это не было бы проблемой. – user664833