Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Список джемов Rails проекты      Поиск   

Ruby On Rails in UA/RJS, Ajax, WEB 2.0, CSS, JAVASCRIPT/RPC сервер с ActionWebService

2008-06-10 01:44:05 Ответить  
svdesign
Volkov Sergey
Адрес:
Сообщений: 2
Регистр: 2008-03-11
его блог 0 сообщ.
RPC сервер с ActionWebService
  •  
Делаю как обычно XMLRPC сервис с ActionWebService и Rails 2.0.2

Контроллер:
class RpcController < ApplicationController
skip_before_filter :verify_authenticity_token
web_service_dispatching_mode :layered
web_service :user, UserRpcService.new
end

Сервис-класс:
class UserRpcService < ActionWebService::Base
web_service_api UserRpcAPI
def auth(login, passwd)
user = User::find(:first, :conditions => {:login => login, :passwd
=> passwd})
raise UserAuthException, "Auth failed" unless user.instance_of?
(User)
true
end
end

В методе UserRpcService.auth мне нужно знать с какого IP адресе поступил RPC запрос.
Перелопатил исходники, и monkey-patching применял, нигде до объекта request доступа не получил.
2008-06-07 23:47:06 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1226
Регистр: 2007-03-13
его блог 40 сообщ.
RE: RPC сервер с ActionWebService
  •  
Думаю что теб стоит покопать в эту сторону
CGI::QueryExtension
------------
Занимаюсь вебом и продвижением сайтов.
2008-06-09 05:55:36 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1226
Регистр: 2007-03-13
его блог 40 сообщ.
RE: RPC сервер с ActionWebService
  •  
или попробуй вызвать
ActionController::AbstractRequest.remote_ip
------------
Занимаюсь вебом и продвижением сайтов.
2008-06-09 12:56:00 Ответить  
svdesign
Volkov Sergey
Адрес:
Сообщений: 2
Регистр: 2008-03-11
его блог 0 сообщ.
RE: RE: RPC сервер с ActionWebService
  •  
Нет, все проще, потратил почти день, перерыл исходники, надо делать так:

Контроллер:
class RpcController < ApplicationController
skip_before_filter :verify_authenticity_token
web_service_dispatching_mode :layered
web_service(:user) do
UserRpcService.new(self)
end
end

Сервис-класс:
class UserRpcService < ActionWebService::Base
web_service_api UserRpcAPI

def initialize(controller = nil)
@controller = controller
end

def auth(login, passwd)
puts @controller.request.remote_ip
user = User::find(:first, :conditions => {:login => login, :passwd
=> passwd})
raise UserAuthException, "Auth failed" unless user.instance_of?
(User)
true
end
end

И вообще это оказывается в докухе есть:
http://aws.rubyonrails.com/classes/ActionWebService/Container/Delegated/ClassMethods.html
Назадназад Новыйновый Ответитьответить
Реклама: купить биллиард Отель Helios Park, Золотые Пески, Болгария. сегодня. Предлагаем заказать: подвесные потолки + лакокраска действительно дешево. Всегда.
Ключевые слова:
Гости: 98 Онлайн: shine, Ruslan Voloshin,
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008