Mario Uher
Mario Uher

Reputation: 12397

Why can't I use a param called "action"?

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

Upvotes: 9

Views: 2256

Answers (4)

fl00r
fl00r

Reputation: 83680

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

Upvotes: 8

zetetic
zetetic

Reputation: 47558

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?

Upvotes: 0

Scott Radcliff
Scott Radcliff

Reputation: 1551

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

Upvotes: 2

John Beynon
John Beynon

Reputation: 37507

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

Upvotes: 5

Related Questions