Agile Web Development with Rails 7: unpermitted parameter error (page 199) [solved]

@rubys

I’ve been struggling to get the active_job to work and after hitting a wall I resorted to using the book’s latest source code and I’m still getting an error when I submit my order. Here’s the console:

14:40:27 web.1  |   ↳ app/controllers/orders_controller.rb:40:in `block in create'
14:40:27 web.1  | Unpermitted parameters: :routing_number, :account_number. Context: { controller: OrdersController, action: create, request: #<ActionDispatch::Request:0x000000010bb5cf00>, params: {"authenticity_token"=>"[FILTERED]", "order"=>{"name"=>"this is my name", "address"=>"this is my address", "email"=>"test@example.org", "pay_type"=>"Check", "routing_number"=>"123", "account_number"=>"456789"}, "commit"=>"Place Order", "controller"=>"orders", "action"=>"create"} }
14:40:27 web.1  | Unpermitted parameters: :routing_number, :account_number. Context: { controller: OrdersController, action: create, request: #<ActionDispatch::Request:0x000000010bb5cf00>, params: {"authenticity_token"=>"[FILTERED]", "order"=>{"name"=>"this is my name", "address"=>"this is my address", "email"=>"test@example.org", "pay_type"=>"Check", "routing_number"=>"123", "account_number"=>"456789"}, "commit"=>"Place Order", "controller"=>"orders", "action"=>"create"} }
14:40:27 web.1  | Unpermitted parameters: :name, :address, :email, :pay_type. Context: { controller: OrdersController, action: create, request: #<ActionDispatch::Request:0x000000010bb5cf00>, params: {"authenticity_token"=>"[FILTERED]", "order"=>{"name"=>"this is my name", "address"=>"this is my address", "email"=>"test@example.org", "pay_type"=>"Check", "routing_number"=>"123", "account_number"=>"456789"}, "commit"=>"Place Order", "controller"=>"orders", "action"=>"create"} }

Same error if I run my code or I run the book’s source.

Very observant! This is actually from the previous edition, and to the best of my knowledge nobody else noticed this. The problem actually is in the previous chapter where the new fields were added to the form but not to the database.

You may think this is cheating, but as it doesn’t further any narrative to spell out that code, I’m adding it to the Playtime exercises at the end of chapter 12. It simply is a matter of creating a migration and adding the fields to order_params.