我的Rails应用程序中有一个REST API,用户将发布XML。我知道Rails(在这种情况下可能是Rack)将发布的数据转换为params散列。
我很好奇是否有办法让Rails不将XML转换为params哈希?相反,我想将XML作为字符串。我宁愿不让Rails转换为哈希,然后使用to_xml
将其转换回xml字符串。
答案 0 :(得分:2)
XML数据应作为POST请求中的参数发送。在你的单元测试中,它看起来像这样:
xml = <<-XML
<?xml version="1.0" encoding="UTF-8"?>
<hash>
<foo type="integer">1</foo>
<bar type="integer">2</bar>
</hash>
XML
post :my_api_path, { 'model_data': xml }
在您的控制器中,您将提取model_data
参数(如果您想从中提取数据,则将其解析为XML):
class XmlPassingController
def save
# XML as a string
pp params[:model_data]
# XML used for attributes to create a model instance
my_model = MyModel.from_xml(params[:model_data])
pp my_model
end
end
答案 1 :(得分:1)