Я стараюсь следовать «Новый способ вызова вспомогательных методов в Rails 5», упомянутый here, первоначально PR here.Rails 5 метод помощников уровня экземпляра в контроллере не распознает помощников. метод
я могу получить «старый подход» к работе со следующим:
# app/models/order.rb
class Customer < ActiveRecord::Base
include CustomersHelper
# some code...
def name_make_uppercase
self.first_name = uppercase(first_name)
self.last_name = uppercase(last_name)
end
end
# app/helperss/customers_helper.rb
module CustomersHelper
def uppercase(input)
return unless input
input[0] = input[0].to_s.capitalize
input
end
end
Однако, с новым подходом я считаю, что я должен быть в состоянии удалить «включить CustomersHelper» и добавить «помощник». к моим прописным функциям в контроллере, например.
# app/models/order.rb
class Customer < ActiveRecord::Base
# include CustomersHelper
# some code...
def name_make_uppercase
self.first_name = helpers.uppercase(first_name)
self.last_name = helpers.uppercase(last_name)
end
end
Однако, теперь мои спецификации являются получаю следующее сообщение об ошибке:
NameError: undefined local variable or method `helpers' for #Customer:0x00000004d50be8>
Мне любопытно, что я могу делать неправильно.