【发布时间】:2014-06-20 00:51:14
【问题描述】:
我在 rails 中有两个模型
1.列表
class List < ActiveRecord::Base
has_many:list_hd_channel
end
2 listhdchannel
class ListHdChannel < ActiveRecord::Base
belongs_to :list
end
我的配置/路由文件如下所示
namespace :api do
resources :eagles, :defaults => {:format => 'json'}
resources :daily13_channel, :defaults => {:format => 'json'}
resources :lists, :defaults => {:format => 'json'}
end
问题是当发送带有任何参数的 PUT 请求 (json) 时,我在控制器处获得的参数未包含在密钥列表下。但是,如果我发送一个参数,它是模型“列表”的一列,那么它就会被包装。 请求
http://ip:3000/api/lists/1
{
"list_name": 1
}
服务器端日志
Started PUT "/api/lists/1" for address at 2014-06-19 17:32:01 -0700
Processing by Api::ListsController#update as JSON
Parameters: {"list_name"=>1, "id"=>"1", "list"=>{"list_name"=>1}}
请求
http://address:3000/api/lists/1
{
"any_param": 1
}
服务器端日志
Started PUT "/api/lists/1" for address at 2014-06-19 17:34:02 -0700
Processing by Api::ListsController#update as JSON
Parameters: {"any_param"=>1, "id"=>"1", "list"=>{}}
如您所见,服务器端日志不会将“any_param”包含在“list”中,即使 url 用于列表控制器。谁能帮我理解为什么它不包装我传递的任何参数,而只包装列表模型中的一列 (list_name)?
【问题讨论】:
-
你是如何提出这些要求的?
-
@MaurícioLinhares 感谢您的回复。我正在 google chrome 中提出这些请求 Advanced Rest 客户端。
标签: ruby-on-rails json api rest model-associations