Forum: Ruby on Rails Copying controller methods to helpers.

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ff43001ac5fe9805aa6ca2e89d3b7b5d?d=identicon&s=25 Jake Janovetz (janovetz)
on 2007-01-21 07:41
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
B8dbb1987e8e5318584865f880036796?d=identicon&s=25 Chris Wanstrath (defunkt)
on 2007-01-21 10:50
(Received via mailing list)
On 1/20/07, Jake Janovetz <rails-mailing-list@andreas-s.net> 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 Wanstrath
http://errtheblog.com
87e41d0d468ad56a3b07d9a6482fd6d5?d=identicon&s=25 Hemant Kumar (gnufied)
on 2007-01-21 20:14
(Received via mailing list)
On Sun, 2007-01-21 at 01:50 -0800, Chris Wanstrath wrote:
> Chris Wanstrath
> 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?
6076c22b65b36f5d75c30bdcfb2fda85?d=identicon&s=25 Ezra Zygmuntowicz (Guest)
on 2007-01-22 00:30
(Received via mailing list)
On Jan 21, 2007, at 11:14 AM, Hemant Kumar 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 Zygmuntowicz
-- Lead Rails Evangelist
-- ez@engineyard.com
-- Engine Yard, Serious Rails Hosting
-- (866) 518-YARD (9273)
87e41d0d468ad56a3b07d9a6482fd6d5?d=identicon&s=25 Hemant Kumar (gnufied)
on 2007-01-22 02:48
(Received via mailing list)
On Sun, 2007-01-21 at 15:28 -0800, Ezra Zygmuntowicz wrote:
> >>
> >
>
>
> class ApplicationController < ...
>     include WhateverModule
> end
>
>
> module ApplicationHelper
>    include WhateverModule
> end


Hmm makes sense.

Thanks.
This topic is locked and can not be replied to.