Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写Rails代码来处理来自客户端(JS)的Phonegap开发请求_Javascript_Ruby On Rails_Mobile_Ruby On Rails 3.1_Cordova - Fatal编程技术网

Javascript 如何编写Rails代码来处理来自客户端(JS)的Phonegap开发请求

Javascript 如何编写Rails代码来处理来自客户端(JS)的Phonegap开发请求,javascript,ruby-on-rails,mobile,ruby-on-rails-3.1,cordova,Javascript,Ruby On Rails,Mobile,Ruby On Rails 3.1,Cordova,编辑的问题 我明白我不能仅仅将Rails代码扔进Phonegap,我必须编写并创建一些静态页面,并使用JS进行数据的服务器通信。我的问题是如何编写Rails代码来处理http请求,以返回包含信息的JSON 谢谢 老问题 我构建了一个Rails移动应用程序,我对使用Phonegap将其转化为原生iPhone和Android应用程序很感兴趣 我四处搜索,并没有找到一个关于如何做这件事的好教程。我看了电影,我很困惑为什么需要额外的中装代码。据我所知,要使用Phonegap,我需要用javascript

编辑的问题

我明白我不能仅仅将Rails代码扔进Phonegap,我必须编写并创建一些静态页面,并使用JS进行数据的服务器通信。我的问题是如何编写Rails代码来处理http请求,以返回包含信息的JSON

谢谢

老问题

我构建了一个Rails移动应用程序,我对使用Phonegap将其转化为原生iPhone和Android应用程序很感兴趣

我四处搜索,并没有找到一个关于如何做这件事的好教程。我看了电影,我很困惑为什么需要额外的中装代码。据我所知,要使用Phonegap,我需要用javascript重写所有前端和数据获取

如果有人能提供一些见解或指导我如何将Rails应用程序与Phonegap集成,请告诉我


谢谢

我认为这是不可能的。Ruby需要一个解释器,除非它在浏览器中,否则无法运行。我认为唯一的方法是使用javascript,你不能,但也许你想试试Rhodes:

Rails 3.1.x已经返回JSON请求,如果你有这样的控制器:

class EaracheMyEyeController < ApplicationController

  def show
    @earache_my_eye = EaracheMyEye.find(params[:id])
    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @earache_my_eye }
    end
  end
end
类EaracheMyEyeController
format.json{render json:@earache\u my\u eye}
部分将在您访问对象的URL时将数据呈现为json,例如
earachemyeyes/1.json

因此,在你的phone gap应用程序中,你可以调用url GET方法来接收数据,并在url的末尾添加
.json
来接收json格式的数据

更新:

关于phonegap中的JSONP请求,我最近学到了一些东西。他们只接受请求。没有职位

但是,您可以在conf/environments/(production/development/test).rb文件中附加
\u method=POST
,并添加
configure.middleware.swap(Rack::MethodOverride,Rack::restfuljsonpmidware

向您的库中添加类似的内容:


这允许您发送一个实际的GET请求,但它会作为您的
\u method=POST
或您真正需要的任何方法进行读取和处理。您不能使用内置的Rack::MethodOverride,因为它只实现POST,而不实现其他功能(旨在方便放置和获取)。因此,位于的文件构建了一个新的框架中间件,允许您使用所有HTTP方法。

为什么需要JSONP和额外的步骤,以及使用JSONP方法和仅呈现JSON的区别是什么?如果应用程序封装在phonegap之类的库中,那么不需要JSONP,请尝试本文的解释