如何使用 Rails 3 将 XML 数据导入 mongodb?
我有 XML 数据,我想将其保存在 mongodb 中。我正在使用 RESTClient 对资源执行 POST。 HTML 状态代码返回它已创建。然而所有字段都是“nil”。我缺少什么?我必须先将其转换为 json/bson 吗?一般情况下可以吗?我正在使用 MongoMapper。
我也想过使用原生 XML 数据库,但我似乎找不到 Rails 3 支持的任何数据库。有吗?
只是我的控制器中常见的东西:
def create
@assessment = Assessment.new(params[:assessment])
respond_to do |format|
if @assessment.save
format.html {redirect_to(:action => 'list')} # backdoor for maintanance
format.xml {render :xml => @assessment, :status => created}
else
*omitted*
end
end
I've got XML data which I want to be saved in a mongodb. I'm using RESTClient to perfom a POST on the resource. The HTML status code returns that it was created. However all fields are "nil". What am I missing? Do I have to convert it to json/bson first? Is it generally possible? I'm using MongoMapper.
I also thought of using a native XML database but I couldn't seem to find any supported by Rails 3. Are there any?
Just the usual stuff in my controller:
def create
@assessment = Assessment.new(params[:assessment])
respond_to do |format|
if @assessment.save
format.html {redirect_to(:action => 'list')} # backdoor for maintanance
format.xml {render :xml => @assessment, :status => created}
else
*omitted*
end
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果 params[:assessment] 是哈希值和数组的哈希值,那么它应该可以工作。但如果它是直接的 XML,则必须先用其他东西来解析它。例如 Crack
Crack::XML.parse('这里是你的 xml
If
params[:assessment]
is a hash of hashes and arrays, it should work. But if it's straight XML you'll have to have something else parse it first. e.g. CrackCrack::XML.parse('<mydoc>your xml here</mydoc>')