已编辑问题
据我所知,我不能将Rails代码抛入Phonegap,我必须编写一些静态页面并使用JS来进行数据的服务器通信。我的问题是如何编写Rails代码来处理http请求以返回带有信息的JSON?
由于
旧问题
我构建了一个Rails移动应用程序,我有兴趣使用Phonegap将其转换为原生的iPhone和Android应用程序。
我四处搜索,并没有真正找到关于如何做到这一点的好教程。我看了Quick Left video并且我很困惑为什么需要额外的中间磨损代码。根据我的理解,使用Phonegap我需要在javascript中重写所有前端和数据提取。
如果有人可以提供一些见解或指向我如何将我的Rails应用程序与Phonegap集成,请告诉我。
由于
答案 0 :(得分:2)
我不认为这是可能的。 Ruby需要一个解释器,除非它在浏览器中,否则它无法运行。我认为唯一的方法是使用javascript
答案 1 :(得分:0)
你不能,但也许你想尝试Rhodes:http://rhomobile.com/products/rhodes/
答案 2 :(得分:0)
如果您有这样的控制器,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
如果您访问对象的网址,format.json { render json: @earache_my_eye }
部分会将数据呈现为JSON,例如earachemyeyes/1.json
因此,在您的手机间隙应用中,您可以调用URLS GET方法来接收数据,并在网址末尾添加.json
以接收JSON格式的数据。
更新
我最近了解了一些关于phonegap中JSONP请求的内容。它们只是 GET请求。没有帖子。
但是,您可以附加_method=POST
,并将configure.middleware.swap(Rack::MethodOverride,Rack::RestfulJsonpMiddleware
添加到您的conf / environments /(生产/开发/测试).rb文件中
将类似内容添加到您的库中:
https://github.com/quickleft/kbomb_phonegap_server/blob/master/lib/rack/restful_jsonp_middleware.rb
这允许您发送实际的GET请求,但它会被您_method=POST
或您真正需要的任何方法读取和处理。你不能使用内置的Rack :: MethodOverride,因为它只实现了POST,没有别的东西(意味着促进PUT和GET)。因此,https://github.com/quickleft/kbomb_phonegap_server/blob/master/lib/rack/restful_jsonp_middleware.rb处的文件构建了一个新的Rack中间件,允许您使用所有HTTP方法。