Rails 5 RC1 - 参数中没有POST属性

时间:2016-05-10 19:29:00

标签: ruby-on-rails-5

我向Rails 5 RC1 api发送POST请求以创建新的投票记录。我可以从request.raw_post看到这些属性包含在POST请求中,但它们不会进入params。我试图permit这些属性没有成功。

# article_votes_controller.rb
def article_vote_params
    logger.debug "### hello from the params function"
    logger.debug request.raw_post
    params.permit(:user_id, :user_type, :article_id, :article_type)
    logger.debug params.inspect
    logger.debug params.to_unsafe_h
end

上面的代码给出了以下输出。

### hello from the params function
{"user_id":"1","user_type":"User","article_id":"99","article_type":"Article"}
<ActionController::Parameters {"controller"=>"article_votes", "action"=>"create"} permitted: true>
{"controller"=>"article_votes", "action"=>"create"}

为什么请求中包含的属性不会包含在params中?

1 个答案:

答案 0 :(得分:0)

IIRC permit方法返回一个新的params实例,所以如果你做了

p = params.permit(:user_id, :user_type, :article_id, :article_type)
logger.debug p.inspect

你会看到正确的,列入白名单的参数。