Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a new action for existing controller

I know this is probably a newbie question, but is it possible to create a new action (method in controller & associated view) from the command line on an existing controller?

For example, I already have a controller named 'Products'. Could I run:

rails g controller products [new_action]

and then rails would insert:

def [new_action]

end

Into my products controller and create a new file called '[new_action].html.erb' in the views/products/ directory? I have already googled this, but no satisfactory answer was returned. Also, I would just go ahead and try it, but I am pretty far into the development of my current app and really do not want to mess anything up.

like image 569
flyingarmadillo Avatar asked Aug 12 '12 14:08

flyingarmadillo


2 Answers

I'm pretty sure you won't be able to do this in a 100% automated way. The reason is that Rails doesn't know what you've done with your routes or controller, and it would require some logic to know how to update these existing files. Your best bet is to just add the new action manually. Add the new method to your controller, update your routes file, and add the view. It will probably take 1 minute at most. Also, if you're not using version controller (which your question eluded to), then you don't have to worry about it automatically overwriting something.

like image 197
Peter Brown Avatar answered Oct 23 '22 11:10

Peter Brown


we can create manually the action in the controller and view but you should also add test statements that because should be good automated process, something like rails generate controller NAME [action action] option m m = merge

like image 1
Carlos Matte Avatar answered Oct 23 '22 11:10

Carlos Matte