Rails controller create action difference between Model.new and Model.create -


i'm going through few rails 3 , 4 tutorial , come across love insights on:

what difference between model.new , model.create in regards create action. thought use create method in controller saving eg. @post = post.create(params[:post]) looks i'm mistaken. insight appreciated.

create action using post.new

def new   @post = post.new end  def create   @post = post.new(post_params)   @post.save    redirect_to post_path(@post) end  def post_params   params.require(:post).permit(:title, :body) end 

create action using post.create

def new   @post = post.new end  def create   @post = post.create(post_params)   @post.save    redirect_to post_path(@post) end  def post_params   params.require(:post).permit(:title, :body) end 

i have 2 questions

  • is rails 4 change?
  • is bad practice use @post = post.create(post_params)?

model.new

the following instantiate , initialize post model given params:

@post = post.new(post_params) 

you have run save in order persist instance in database:

@post.save 

model.create

the following instantiate, initialize and save in database post model given params:

@post = post.create(post_params) 

you don't need run save command, built in already.

more informations on new here

more informations on create here


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -