В моем приложении 4 rails у меня есть подпапка logic
в папке моего приложения, где я помещаю классы/методы, которые не принадлежат контроллерам или моделям.Доступ к методам и классам подпапок
Однако, когда я пытаюсь получить доступ к этим методам с контроллера, я получаю неизвестную ошибку метода.
Вот класс в папке logic
:
class Analyze
def intent_determination(msg, context)
keywords = [["categories", "category"], ["brands", "brand"], ["stock", "stocks"], ["info", "information"], ["no"], ["yes"]]
tokenized_array = msg.split
keywords.each {|array| context["intent"] = array.first if (tokenized_array & array).any? }
context
end
def update_context(msg, session)
session.update(context: intent_determination(msg, session.context))
session.update(context: brand_determination(msg, session.context))
session.update(context: style_determination(msg, session.context))
session
end
end
Как я могу получить доступ к этим методам в своих контроллерах? Когда я только что выполнил update_context(my_message, @session)
, как я уже сказал, я получаю неизвестную ошибку метода.
Вот моя App структура папок:
App
Assets
Controllers
Logic
analyze.rb
Helpers
Mailers
Models
Views
EDIT: Я добавил: config.autoload_paths << Rails.root.join('app/logic/**/')
в мой файл application.rb.
Так что это не дубликат.
Возможный дубликат [Как добавить новую папку с классом в приложении rails?] (Http: // stackoverflow.com/questions/26406383/how-add-new-folder-with-class-in-rails-app) –
@DaveSchweisguth см. мое редактирование –
'Analyze.new.update_context (...)'? –