簡體   English   中英

如何從外部從Ruby on Rails應用程序訪問數據?

[英]How can I access data from a Ruby on Rails application externally?

我正在嘗試從單獨的Ruby腳本中使用Rails應用程序中的數據。

我閱讀了該論壇上的帖子 ,其中有人建議使用數據的最佳方法是將數據庫封裝在一個應用程序中,然后讓該應用程序提供用於處理該數據的API。 因為將數據庫集成到幾個不同的應用程序中顯然很糟糕。

好吧,現在我想在另一個系統上使用來自另一個腳本的Rails應用程序中的一些數據。 我該如何實現?

將來,我可能希望遠程使用Rails應用程序中的數據,但也可能要使用腳本。 我假設這可能需要JSON或SOAP,但是我想在研究之前知道。

您是否看過ActiveResource? 它是專門設計用於通過HTTP將數據從Rails模型公開到另一個Rails應用的。

由於Ruby on Rails遵循REST,因此默認情況下,您的應用程序是其自己的API。 例如,假設您具有以下控制器:

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
    respond_to do |format|
      format.html
      format.xml  { render :xml => @user}
      format.js
    end
  end

  def index
    @users = User.all
    respond_to do |format|
      format.html
      format.xml  { render :xml => @users}
      format.js
    end
  end
end

現在,當通過Web瀏覽器點擊該控制器時,它將按照您的期望呈現您的視圖。 例如:

GET /users/1   =>  /app/views/users/show.html.erb
GET /users     =>  /app/views/users/index.html.erb

但是,如果您將請求更改為以下內容:

GET /users/1.xml
GET /users.xml

您將返回XML數據而不是HTML視圖。 現在,您可以使用某種REST Client任何其他應用程序訪問此數據,或者僅通過從任何命令行調用cURL即可訪問該數據。

您可以將任何擴展名附加到URL的末尾,它將找到相應的respond_to部分。

訪問數據也很簡單,只需使用HTTParty之類的東西向您的應用程序發出請求。 查看示例 ,它們非常好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM