11

I am trying to create an object via an API, i.e. no forms are required, should I be doing MyModel.new(:name => params[:name]) or MyModel.create(:name => params[:name]) ?

Assume I have resources : my_models in routes

I checked and I see that methods can use the params hash ok.

Michael Durrant
  • 93,410
  • 97
  • 333
  • 497

2 Answers2

40

.new makes an instance (but you'll still need to .save it).
while
.create makes an instance and saves it in one go.

Hopefully that helps your decision on which to use.

Michael Durrant
  • 93,410
  • 97
  • 333
  • 497
jamiescript
  • 1,284
  • 1
  • 11
  • 18
4

It depends on what are you want to get. new method simply instantiates new object and create method creates an object and saves it to the database, if validations pass.

WarHog
  • 8,622
  • 2
  • 29
  • 23
  • @MichaelDurrant, yes. I assume you are talking about ActiveRecord: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-create. – Mischa Nov 27 '11 at 13:46