我向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
中?
答案 0 :(得分:0)
IIRC permit
方法返回一个新的params实例,所以如果你做了
p = params.permit(:user_id, :user_type, :article_id, :article_type)
logger.debug p.inspect
你会看到正确的,列入白名单的参数。