如何正确处理参数+ POST参数

时间:2019-11-14 03:05:31

标签: ruby-on-rails

我有一条路线post '/blogs/:blog_id/posts', 'posts#create'指向PostsController#create

class PostsController < ApplicationController
  def create
    @post = Post.new(post_params)

    if @post.save
      render json: @post, status: :created
    else
      render json: @post.errors, status: :unprocessable_entity
    end
  end

  private

  def post_params
    params.require(:post).permit(:url)
  end
end

由于blog_id不是post_params的一部分,所以rails会引发MySQL错误,指出blog_id中缺少Post.new。我该如何处理?处理它的正确方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

通常,“流氓”模式是:

@blog = Blog.find(params[:blog_id])
@post = @blog.posts.build(post_params)

if @post.save
....