I seem to have missed something in my (limited) rails experience. I can put lots of stuff in helpers for the views to call but these methods aren't accessible to the controller. Now they always bang on about "Dont Repeat Yourself" but I have to repeat some methods that I need in the controller as well. Surely this is not "A Good Thing"? Am I doing something wrong? G.
on 2007-05-25 04:26
on 2007-05-25 04:59
In you controller, just add helper :sample
on 2007-05-25 05:09
I like to jam common pieces into modules in the lib directory. Does anyone know if it is it considered good practice to mix controller and view functionality in the helper files. I see the helper :sample like sishen pointed out in plugins and core code, but I have also heard from others that one should only put modules for use with views in the helper directory. giorgio wrote: > I seem to have missed something in my (limited) rails experience. > > I can put lots of stuff in helpers for the views to call but these > methods aren't accessible to the controller. > > Now they always bang on about "Dont Repeat Yourself" but I have to > repeat some methods that I need in the controller as well. Surely this > is not "A Good Thing"? > > Am I doing something wrong? > > G.
on 2007-05-25 07:55
Components are for sharing common controller/view. Sometimes there is no sure way of where to put your code, and for that. application.rb and helper it. I personally, break up a lot of my codes into plugins and lib files. Zach Inglis â†’ Blog -- http://www.zachinglis.com â†’ Company -- http://www.lt3media.com â†’ Portfolio -- http://portfolio.zachinglis.com
on 2007-05-25 09:50
I'm afraid I still dont get it.. I can put a method in application_helper.rb I can then put helper:application in the controller I still cant call that method from the controller. How do you call it? G.
on 2007-05-25 11:13
Hello Giorgio, If you have a method that you would like to access both from your views and from your controllers, put it into 'application.rb', and mark it as a helper method using the method "helper_method". For example, if you had a method called 'my_helpful_method' in application.rb, just add the line 'helper_method :my_helpful_method' above it, like this: # in the file application.rb helper_method :my_helpful_method def my_helpful_method "I do something very useful!" end Now you can access my_helpful_method both from controllers and from views. I hope that helps, -Seth
on 2007-05-25 19:05
Hey Giorgio, I agree with you
on 2007-06-04 07:50
I am having a problem in that variables that get set in the method are available to controllers but not the views. The method gets invoked from the view but its variables are not being received in the view. For example if I have a @my_helpful_var = 'xyz' then in the view I can't get the value of @my_helpful_var in my view .rhtmls. I can get to it in my controllers How do I get around this?