If I have a method that is useful in both models and in views, where would be the appropriate place to put it?
The method in question just takes two dates as strings, tries to parse them and returns all dates in the range between them. It also takes care of the issues when the dates are badly formatted etc etc…
This method is being used in several models (so a simple class method in one model doesn’t seem appropriate) and also in some view helpers.
If I have a method that is useful in both models and in views, where would
be the appropriate place to put it?
# config/initializer/preload_helpers.rb
require "my_app/my_helper"
# lib/my_app/my_helper.rb ->
module MyHelper
module_function
def helper
puts "win"
end
end
# app/helpers/application_helpers.rb ->
class ApplicationHelpers
include MyHelper
end
# app/models/my_model.rb ->
class MyModel < ActiveRecord::Base
include Myhelper
end
The method in question just takes two dates as strings, tries to parse them
and returns all dates in the range between them. It also takes care of the
issues when the dates are badly formatted etc etc..
This method is being used in several models (so a simple class method in one
model doesn't seem appropriate) and also in some view helpers.
Additionally, you can put it inside its own class and use that as necessary.
It’d be similar to the previous answer, but instead of including that behaviour, you’d get an instance of that class and pass in the strings either in #initialize or the method you use to parse and call that method.