Destroy? Delete? What's going on here? Rails 2.3.5
- by Steve
I am new to rails. My rails version is 2.3.5. I found usage like:
In controller, a destroy method is defined and in view, you can use :action = "delete" to fire that method. Isn't the action name has to be the same as the method name? Why delete is mapped to destroy?
Again, in my controller, I define a method called destroy to delete a record. In a view, I have <%= link_to "remove", :action = 'destroy', :id = myrecord %. But it never works in practice. Every time I press the remove link, it redirects me to the show view, showing the record's content. I am pretty sure that my destroy method is:
def destroy
@myobject = MyObject.find(params[:id])
@myobject.destroy
@redirect_to :action = 'index'
end
If I change the method name from destroy to something like remove_me and change the action name to remove_me in the view, everything works as expected.
In the above two wired problems, I am sure there is no tricky rountting set in my configuration.
All in all, seems the destroy and delete are mysterious keywords in rails. Anyone can explain this to me? Thank you very much.