11

Rails 3 と Rails 4 のチュートリアルをいくつか読んでいて、いくつかの洞察が欲しいものに出くわしました。

Create アクションに関して、Model.new と Model.create の違いは何ですか。createたとえば、コントローラーで保存するためにメソッドを使用していると思いました。@post = Post.create(params[:post])しかし、私は間違っているようです。どんな洞察も大歓迎です。

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

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

2つの質問があります

  • これはRails 4の変更に関係していますか?
  • を使用するのは悪い習慣@post = Post.create(post_params)ですか?
4

2 に答える 2