我有一个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
答案 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