在C#中使用rails控制器

时间:2013-12-12 03:22:04

标签: c# ruby-on-rails http get crud

我有一个Rails应用程序,我可以在网页中执行所有CRUD,但我需要在C#中创建一个控制台应用程序来访问rails应用程序的控制器并使用它。

任何人都可以帮助我,这是我的rails应用程序的代码。

 class UsuariosController < ApplicationController
  # GET /usuarios
  # GET /usuarios.json
  def index
    @usuarios = Usuario.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @usuarios }
    end
  end

  # GET /usuarios/1
  # GET /usuarios/1.json
  def show
    @usuario = Usuario.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @usuario }
    end
  end

  # GET /usuarios/new
  # GET /usuarios/new.json
  def new
    @usuario = Usuario.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @usuario }
    end
  end

  # GET /usuarios/1/edit
  def edit
    @usuario = Usuario.find(params[:id])
  end

  # POST /usuarios
  # POST /usuarios.json
  def create
    @usuario = Usuario.new(params[:usuario])

    respond_to do |format|
      if @usuario.save
        format.html { redirect_to @usuario, notice: 'El usuario fue creado con exito.' }
        format.json { render json: @usuario, status: :created, location: @usuario }
      else
        format.html { render action: "new" }
        format.json { render json: @usuario.errors, status: :unprocessable_entity }
      end
    end
  end

  # PUT /usuarios/1
  # PUT /usuarios/1.json
  def update
    @usuario = Usuario.find(params[:id])

    respond_to do |format|
      if @usuario.update_attributes(params[:usuario])
        format.html { redirect_to @usuario, notice: 'El usuario fue actualizado con exito.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @usuario.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /usuarios/1
  # DELETE /usuarios/1.json
  def destroy
    @usuario = Usuario.find(params[:id])
    @usuario.destroy

    respond_to do |format|
      format.html { redirect_to usuarios_url }
      format.json { head :no_content }
    end
  end
end

2 个答案:

答案 0 :(得分:1)

IronRuby *可能有帮助!

* “.NET和Silverlight的Ruby编程语言的开源实现,在很大程度上依赖于Microsoft的动态语言运行时”

答案 1 :(得分:0)

如果你想向像UsuariosController这样的rails控制器发出GET请求,你可以这样做:

public static string HttpGet(string URI) 
{
   System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
   req.Proxy = new System.Net.WebProxy(ProxyString, true);
   System.Net.WebResponse resp = req.GetResponse();
   System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
   return sr.ReadToEnd().Trim();
}

例如,如果您想访问www.yourpage.com/Usuarios并获取用户,那就是您必须致电的uri。 (这将调用索引操作,这是我想要的控制器中的默认路由操作)。或者如果你想使用另一个动作.. / Usuarios / id / SomeMethodReturningSomething