If I say this in the controller:
@order = Order.new(params[:order])
What is required for this to work?
Does there need to be a one-to-one match between all of the fields in params[:order] and the Order model?
Or can there be more or fewer fields in params[:order] than are required to instantiate an Order?
params[:order] itself should be a hash, where each key is the name of the model field. To see how Rails converts form field names into the params hash, write a view template with the form_for helper and view source.
There can be more or fewer fields, yes. Extra fields will be ignored. Fewer fields just won’t be copied into the instance object. You don’t need anything at all to instantiate an ActiveRecord object. (Object validity and saving are a different story – they invoke validations and the ActiveRecord callback mechanism.)