Forum: Ruby on Rails Create a helper for models and views?

Posted by Linus Pettersson (Guest)
on 2013-02-03 13:24
(Received via mailing list)
Hi!

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.

So, where does this method belong in rails?
Posted by Linus Pettersson (Guest)
on 2013-02-03 13:26
(Received via mailing list)
And actually, it is used in my controllers as well :)


Den sndagen den 3:e februari 2013 kl. 13:23:28 UTC+1 skrev Linus
Pettersson:
Posted by Jordon Bedwell (Guest)
on 2013-02-03 13:30
(Received via mailing list)
On Sun, Feb 3, 2013 at 6:23 AM, Linus Pettersson
<linus.pettersson@gmail.com> wrote:
> 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.
>
> So, where does this method belong in rails?

Read Above.
Posted by Johnneylee Rollins (Guest)
on 2013-02-03 15:38
(Received via mailing list)
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.

~Spaceghost
Posted by tamouse mailing lists (Guest)
on 2013-02-04 09:30
(Received via mailing list)
On Sun, Feb 3, 2013 at 8:36 AM, Johnneylee Rollins
<johnneylee.rollins@gmail.com> wrote:
>> On Sun, Feb 3, 2013 at 6:23 AM, Linus Pettersson
>>
>>   include MyHelper
>> > them
>> Read Above.
Sounds to me like this would be better as a gem, since it seems to be
completely independent of the application (and probably have much
broader use!)
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.