我有一个 Rails 应用程序,其中用户参数都是通过带有 JSON 参数的 RESTful API 提供的。具体来说,没有用户发布数据的客户端 HTML 表单:它是原始 JSON。
因此,要创建一个新的 Car 条目,用户可能会:
POST www.mysite.com/api/car
model=Ford&year=2012
在我的应用程序中,当我收到此消息时,Action Pack 值与 params[] 哈希中的用户值混合在一起,因此我得到:
params = {:model=>"Ford", :year=>"2012", :format=>"json", :action=>"create", :controller=>"api/cars"}
将用户生成的参数与 Action Pack 生成的参数分开的最佳方法是什么?我能想到的最好的方法是删除后者:
car_params = params.reject {|k,v| [:format, :action, :controller].member?(k)}
car = car.new(car_params)
但这闻起来不对。有没有更好的办法?(例如,我可以让 Action Pack 将用户提供的参数封装到单个哈希中并将其作为 params[] 的单个元素传递吗?)