代码之家  ›  专栏  ›  技术社区  ›  Blaine Lafreniere

如何从外部访问RubyonRails应用程序中的数据?

  •  2
  • Blaine Lafreniere  · 技术社区  · 16 年前

    this forum post 其中一些人建议,处理数据的最佳方法是将数据库封装在一个应用程序中,然后让该应用程序提供处理该数据的API。因为将数据库集成到几个不同的应用程序中显然是不好的。

    好吧,现在我想在同一个系统上使用来自另一个脚本的Rails应用程序的一些数据。我怎样才能做到这一点?

    3 回复  |  直到 16 年前
        1
  •  6
  •   Yehuda Katz    16 年前

    你看过ActiveResource吗?它专门设计用于通过HTTP将Rails模型中的数据公开给另一个Rails应用程序。

        2
  •  1
  •   Mike Trpcic    16 年前

    由于RubyonRails遵循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
    

    任何其他应用程序 REST Client ,或者只需从任何命令行调用cURL。

    您可以在URL的末尾附加任何扩展名,它将找到相应的respond_to部分。