2014-12-03 2 views
0

Я создал помощник, который я хотел бы использовать для обработки текстаRails с использованием ActionView :: Helper методы вне поля зрения

module ApplicationHelper 

    module TextHelper 

    extend ActionView::Helpers 

    end 
end 

Однако, когда я бегу ApplicationHelper::TextHelper.simple_format "foo" в консоли Rails Я получаю

NoMethodError: undefined method `white_list_sanitizer' for Module:Class 

Есть ли что-нибудь еще, что мне нужно?

Я уже посмотрел https://github.com/rails/rails/issues/13837, но это не сработало.

Использование Rails 4, Ruby 1.9.3

+0

Почему вы используете '' extend'' и не '' include''? – dgilperez

+0

'include' производит' NoMethodError: undefined method 'simple_format' для ApplicationHelper :: TextHelper: Module' – Sash

+0

'include ActionView :: Helpers :: TextHelper'. Вот откуда берется 'simple_format'! –

ответ

3

Если вы находитесь в консоли, вы должны быть в состоянии просто сделать helper.simple_format('hi'). Метод helper доступен в консоли как способ вызова некоторых вспомогательных методов.

При использовании пользовательского помощника:

# app/helpers/custom_helper.rb 
module CustomHelper 
    def custom_method(x) 
    puts "Custom method #{x}" 
    end 
end 

# from the console 
helper.custom_method('hi') 

# from the controller 
class SomeController < ApplicationController 

    def index 
    view_context.custom_method('hi') 
    end 
end 
+0

Я использую консоль для тестирования, моя конечная цель - использовать другие помощники по редактированию данных. – Sash

+0

Итак, вы хотите создать свой собственный помощник и использовать свои собственные методы, но уметь видеть, как они работают в консоли? – jeremywoertink

+0

Yup. Я получаю ту же ошибку, если запускаю ее с контроллера. – Sash

Смежные вопросы