I am implementing strategy pattern in Rails where I have Models like User, Item, Category and need to recommend items for the users depending on various algorithms (strategies) that user selects in view.
I am having a Recommend class which has an interface of recommend(user_id, strategy) and returns array of item_id. The strategy in recommend will be decided at runtime depending on the option user selects in the view. I have placed the recommend interface in /lib directory and the strategies in /lib/strategy directory. The strategies or algorithms right now will do SQL queries to give recommendations which is naive.
I want to make sure if I placed the files in proper directories or Should I need place the recommend class and all the strategies in models or app/services or any other?. I am really confused.