Copying controller methods to helpers

I have a case where replicas of certain controller methods would be
useful within the view. In particular, these are role-based user-access
methods.

For example:
can_view?
can_modify?

These will be methods setup in the AccountSystem module which is
included in the ApplicationController. These methods will be used as
before_filters to determine if the user has access to do a certain thing
or not.

I would also like to provide these same methods to my views, but I don’t
quite understand how the scope will work.

My views don’t have access to the “can_view?” from AccountSystem. But
if I put a can_view? method in a helper, how would it call the can_view?
from AccountSystem?

Also, would there be a simple way to duplicate these in one fell-swoop
to get all the methods copied over?

Jake

On 1/20/07, Jake J. [email protected] wrote:

I would also like to provide these same methods to my views, but I don’t
quite understand how the scope will work.

In your ApplicationController:

helper_method :can_view?, :can_modify?


Chris W.
http://errtheblog.com

On Sun, 2007-01-21 at 01:50 -0800, Chris W. wrote:

Chris W.
http://errtheblog.com

Ok Chris, I like helper method, but sometimes the list grows too long.

I used to have following code in my application.rb

helper_method
:current_url,:rand_between,:url_without_port,:market_open_time_in_utc,:market_close_time_in_utc,:market_current_time_in_utc,:market_local_time_as_str,:redirect_to_login,:current_domain,:diode,:triode,:pipe_val

in those cases, what would the best approach? Moving them to a plugin?

On Jan 21, 2007, at 11:14 AM, Hemant K. wrote:

helper_method :can_view?, :can_modify?
helper_method :current_url,:rand_between,:url_without_port,:market_ope
n_time_in_utc,:market_close_time_in_utc,:market_current_time_in_utc,:m
arket_local_time_as_str,:redirect_to_login,:current_domain,:diode,:tri
ode,:pipe_val

in those cases, what would the best approach? Moving them to a plugin?

Hemant-

You could store all of those methods in a module name
WhateverModule. Then just include that in yoru controller and view
helpers and it will bve shared without all the ugly helper calls:

module WhateverModule
def some_methods
end
end

class ApplicationController < …
include WhateverModule
end

module ApplicationHelper
include WhateverModule
end

Cheers-
– Ezra Z.
– Lead Rails Evangelist
[email protected]
– Engine Y., Serious Rails Hosting
– (866) 518-YARD (9273)

On Sun, 2007-01-21 at 15:28 -0800, Ezra Z. wrote:

class ApplicationController < …
include WhateverModule
end

module ApplicationHelper
include WhateverModule
end

Hmm makes sense.

Thanks.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs