我做了什么:
routes.rb中:
post 'api/last_sync_time' => 'api#set_last_sync_time'
控制器:
protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' }
def set_last_sync_time
last_sync_time = params["last_sync_time"]
FileStorage.initFromFilename('sync').setLastSyncTime(last_sync_time)
end
试验:
curl -X POST -d "last_sync_time=1234567" http://localhost:3000/api/last_sync_time
所有工作文件,但在Rails控制台中,我收到消息:
ActionView :: MissingTemplate(缺少模板api / set_last_sync_time, application / set_last_sync_time with {:locale => [:en],:formats => [:html, :text,:js,:css,:ics,:csv,:vcf,:png,:jpeg,:gif,:bmp,:tiff, :mpeg,:xml,:rss,:atom,:yaml,:multipart_form,:url_encoded_form, :json,:pdf,:zip] ,: variants => [],:handlers => [:erb,:builder,:raw, :ruby,:jbuilder,:coffee]}。
我该如何解决呢?可能有更好的方法吗?
答案 0 :(得分:3)
您必须返回回复。由于您的请求格式为application/json
,因此您可以根据请求返回类似下面的示例或更具信息性的消息。
render json: {success: true}