Rails 框架上的 Ruby CGI 代码

Posted

技术标签:

【中文标题】Rails 框架上的 Ruby CGI 代码【英文标题】:Ruby CGI code on rails framework 【发布时间】:2015-10-08 11:47:51 【问题描述】:

我是 Ruby 和 Rails 的新手,我正在开发和编写一个简单的连接器,以便为我的 Rails 应用程序使用 API 服务。我有一个使用 RUby 的 CGI 类的连接器。现在我想在 Rails 平台上实现相同的功能。会怎样?有哪些替代类(或 gem)提供与 Rails 的 CGI 类似的功能

例如我有这个代码:

cgi = CGI.new
if cgi.params['jsonString']!=""
    data=cgi.params['jsonString'].to_s
    data.delete! '\\'
    data.delete! '['
    data.delete! ']'
    data=data[1..-1]
    data=data[0..-2]
    shieldsquare_service_url = 'http://' + $_ss2_domain + '/getss2data'
    shieldsquare_request = JSON.parse(CGI::unescape(data))
    shieldsquare_request["sid"] = $_sid
    shieldsquare_request["host"] = ENV[$_ipaddress]
    shieldsquare_post_data = JSON.generate(shieldsquare_request)
    if $_async_http_post== true
        error_code=shieldsquare_post_async shieldsquare_service_url,               shieldsquare_post_data,$_timeout_value.to_s
    else
        error_code=shieldsquare_post_sync shieldsquare_service_url, shieldsquare_post_data, $_timeout_value
    end
end

请在这个话题上指导我

【问题讨论】:

【参考方案1】:

CGI 和 rails 完全不同。 这是***上的 CGI: https://en.wikipedia.org/wiki/Common_Gateway_Interface

如果是导轨,请先查看 Rack:http://codefol.io/posts/What-is-Rack-A-PrimerWhat is Rack middleware?

当请求到达 rails(或 sinatra 或您使用的任何符合机架的东西)时,它采用标准格式非常有效。 Rails 只需要担心这一点。不用担心通常是好事,这意味着您可以专注于应用程序。它的缺点是你必须学习你正在使用的框架遵循的约定才能有效地使用它。

还可以快速浏览一下: Rails vs Ruby CGI

【讨论】:

以上是关于Rails 框架上的 Ruby CGI 代码的主要内容,如果未能解决你的问题,请参考以下文章

Circle CI 上的 Rspec 测试失败(Ruby on Rails 5.2.3)

Stripe checkout form - 页面上的表单索引 - Ruby on Rails

当我尝试从 ruby​​ on rails 上的表单获取输入时,我得到了简单名称的哈希数组瞬间。如何解决?

Ruby/Rails:生成脚手架的代码在哪里

如何在远程服务器上查看来自 ruby​​ CGI 应用程序的错误消息?

思考Ruby On Rails的底层代码(Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門)