在我的Rails应用程序中,我有:
routes.rb中:
resources :tasks, :defaults => {:format => 'json'}, :except => [:index, :new, :create, :show, :edit, :update, :destroy] do
member do
get :to_chrome
post :from_chrome
end
end
mime_types.rb:
Mime::Type.register "application/xls", :xls
Mime::Type.register "application/json", :json
tasks_controller.rb:
class TasksController < ApplicationController
skip_before_action :verify_authenticity_token, if: :json_request?
def to_chrome
@survey = Survey.find(params["id"])
@survey = Survey.last
respond_to do |format|
format.json {render_for_api :private, :json => @survey}
end
end
end
def from_chrome
binding.pry_remote
render :nothing => true
end
protected
def json_request?
request.format.json?
end
end
to_chrome
工作正常。
我正尝试使用以下设置从Postman触发from_chrome
:
网址 http://localhost:3000/tasks/2452456/from_chrome
动词:发布
身体:“John Rambo”,时间:“下午2点”
(还尝试用单引号包装整个字符串)
正文格式:原始JSON(application / json)
标题1:接受:application / json
标题2:内容类型:application / json
在邮差中,我收到了200回复。
但在Rails中,当我在params
内检查from_chrome
时,我只看到:
{"format"=>"json", "controller"=>"tasks", "action"=>"from_chrome", "id"=>"2452456"}
我的Json在哪儿?
谢谢,
史蒂芬。
答案 0 :(得分:0)
没关系。我刚刚在request.body.read
找到了json。