在我的域服務器上使用 Ruby on Rails 應用程序 (Consuming a Ruby on Rails app on my domain server)


問題描述

在我的域服務器上使用 Ruby on Rails 應用程序 (Consuming a Ruby on Rails app on my domain server)

I am running rails version 2.3.2 on my website domain and I am having a huge problem with wrapping my head around how this works:

I have my website running a RoR app on my domain development server. It is just a sample scaffold that allows you to type in your name, zip, state, etc. I am using ruby 1.8.2, and have a mysql server also.

I want to consume this data into my windows phone 7 through SOAP (I don't know if I even have one to begin with), but here is where I have problems.

In using visual studio, it cannot locate my server when i direct it over to my url. It gives the error saying that there was nothing in the correct format.

Maybe I don't have a server running? I want to have the data be parsed out into XML for the phone to consume, but I have no idea how to set this up!

Basically, I have the domain, and the phone, but no knowledge of the steps inbetween.

Can anyone help me get this up and running?

‑‑‑‑‑

參考解法

方法 1:

The easiest way to go about this is to simply emit JSON and consume that on your mobile application. Generally you just need to call .to_json on an object and you're half done. SOAP requires a ton of XML overhead that's usually not worth it unless you're already neck‑deep in an enterprise application that's overflowing with it.

Updating your Rails stack to 2.3.11 and Ruby 1.8.7 is strongly encouraged as older versions of Rails, as with any application, have vulnerabilities. Ruby 1.8.2 is from around 2005 and is effectively ancient.

方法 2:

A few things to try:

First ‑ have you actually started the server? eg by running "script/server" ? You can test that the server is up and running by using "curl" (google for it to install/download" which is a very simple (and very commonly used) application for testing this stuff easily.

if you run curl and type in the url that you'd be accessing via your windows phone... and it responds with something (probably html), then the server is up and running. You can later use CURL to test if it responds to an xml request too.

Second: go look in the controller. See if it has a section such as:

respond_to do |format|
  format.html 
  format.xml { render :xml => @widgets.to_xml }
end

it's the "respond_to" and "xml" bits that matter if you are going to get your system to consume xml. They should be present in every action in your controller. If not ‑ you will have to go a research how to do this for your code ‑ alternatively, using a later version of rails will let you use the up‑to‑date scaffold generators that should include these as standard.

Third: it is possible that your Windows phone app is just not requesting the resources in xml format and so Rails is returning html (which your SOAP parser won't understand). I don't know how you can check this, but what rails requires is for the HTML‑header: "Accept" to be set to "application/xml" or "text/xml"

You can also test this for any given URL with curl by using eg: "curl ‑H 'Accept: text/xml' 127.0.0.1/myapp" ‑ if it continues to spit out html (and not xml) then obviously it's not producing xml for that URL.

(by RichardtadmanTaryn East)

參考文件

  1. Consuming a Ruby on Rails app on my domain server (CC BY‑SA 3.0/4.0)

#webserver #ruby-on-rails #windows-phone-7 #html #ruby






相關問題

高性能 IIS 的最佳實踐/工具? (Best practices / tools for high performance IIS?)

找不到 httpd.conf (Unable to find httpd.conf)

auto_prepend_file 多個文件 (auto_prepend_file multiple files)

如何正確配置 Intellij IDEA 中的 JBoss?我得到錯誤:未指定服務器實例 (How to configure correctly the JBoss in the Intellij IDEA? I get Error:server instance not specified)

在後台android更新數據到服務器 (update data to server in the background android)

根據網絡連接將用戶引導到不同的頁面 (Direct user to different page based on network connection)

與 apache 網絡服務器和 Node.js REST 服務器共享 HTTP 端口 80 (Share HTTP port 80 with apache webserver and Node.js REST server)

有沒有像 ASP.NET 的 webrick 之類的東西? (Is there anything like webrick for ASP.NET?)

Apache、lighttpd、nginx、切諾基,什麼是最好的組合? (Apache, lighttpd, nginx, cherokee, what's the best combination?)

在我的域服務器上使用 Ruby on Rails 應用程序 (Consuming a Ruby on Rails app on my domain server)

在同一台 Ubuntu 服務器上安裝和配置 PHP5 和 7 (Install and configure PHP5 and 7 on same Ubuntu server)

如何從 http 請求中阻止端口服務器 (How to block port server from http request)







留言討論