ruby-on-rails - 如何更改 activeresource ruby​​ gem 中的请求 url 结构

标签 ruby-on-rails ruby api rest activeresource

ActiveResource 中是否有可用的配置选项来更改请求 url 结构

例如,当我的客户端应用程序尝试从 api 访问特定用户的服务时,ActiveResource 将请求发送到以下结构中的 api url

http://localhost:3000/api/v1/services.json?user_id=1

但我希望 ActiveResource 像这样向 api url 发送请求

http://localhost:3000/api/v1/users/1/services

这是我在客户端 Rails 应用程序中使用的两个模型文件

用户.rb

 class User < ActiveResource::Base 
   self.site = "http://localhost:3001/api/v1"
   has_many :services
 end

服务.rb

 class Service < ActiveResource::Base
   self.site = "http://localhost:3001/api/v1"
   belongs_to :user 
 end

任何帮助,将不胜感激。谢谢

最佳答案

使用这些模型:

 class User < ActiveResource::Base 
   self.site = "http://localhost:3001/api/v1"
   has_many :services
 end

 class Service < ActiveResource::Base
   self.site = "http://localhost:3001/api/v1"
   belongs_to :user 
 end

ActiveResource 应该发出如下请求:

user = User.find(1)      # GET http://localhost:3001/api/v1/users/1.json
services = user.services # GET http://localhost:3001/api/v1/users/1/services.json

假设您的 ActiveResource 中有更多选项,您也可以考虑使用类似这样的东西:

 class Resource < ActiveResource::Base 
   self.site = "http://localhost:3001/api/v1"
 end

 class User < Resource 
   has_many :services
 end

 class Service < Resource
   belongs_to :user 
 end

关于ruby-on-rails - 如何更改 activeresource ruby​​ gem 中的请求 url 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024934/

相关文章:

ruby-on-rails - 回形针重新处理返回 true 但不更改文件夹结构

ruby - 如何使用 ElasticSearch 映射/查询这些数据?

ruby - 用于在 Aptana Studio 3 中评论 ruby​​ 代码的热键不适用于德语键盘

ruby-on-rails - 在任何来源中都找不到 rake-0.9.2.2

ruby-on-rails - Rails 回形针,多个不同类型(PDF、图像、文档...)

ruby-on-rails - Rails The Movie Database Gem 按受欢迎程度排序

ruby-on-rails - ActiveRecord 有 Lint 吗?

c# - 如何使用 web api 验证 CRM 用户?

angular - StaticInjectorError - 填充下拉列表

api - 美国运通API