Why can't I use a param called “action”?

2020-02-13 09:26发布

问题:

Is "action" as a input field name forbidden? Because everything works except the assignment of the "action" param.

回答1:

because action, controller are prohibited words.

Look around debug params

--- !map:ActiveSupport::HashWithIndifferentAccess 
action: index
controller: main

so you can't use those params. Because they will be REWRITED AUTOMATICALLY



回答2:

I would suggest NOT using words like action, name, method as field names as they are all attributes of the form tag and are likely to get confused when the form is posted



回答3:

I agree with jbeynon, I would also say anything that has to do with CRUD(Create, Read, Update, Delete) is protected also.



回答4:

I don't see why this would be invalid. You'd want to avoid conflicting with existing class or method names (e.g. not a good idea to define a method called action on a controller).

everything works except the assignment of the "action" param.

Does this generate an error? If so, what exactly?