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 2007-01-21 08:41
on 2007-01-21 11:50
On 1/20/07, Jake J. <firstname.lastname@example.org> 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 2007-01-21 21:14
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 2007-01-22 01:30
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@example.com -- Engine Y., Serious Rails Hosting -- (866) 518-YARD (9273)
on 2007-01-22 03:48
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.