我正在创建一个生成XML而不是HTML的Rails应用程序。我该怎么做呢?Ruby on Rails XML
0
A
回答
-1
您编写XML而不是HTML。 Rails并不特别关心它所服务的内容。
1
2
您可以使用Ruby的Builder库,也可以使用ActiveRecord's XML serialization功能。
5
您有三种选择。
选项1是显式地呈现自动生成的XML。
render :xml => @object
这将为您调用@ object.to_xml。你可以调整输出的选项:
render :xml => @object.to_xml(:except => [:private1, :private2], :include => [:associated_class])
这是非常快速和容易。如果您不需要严格控制输出,它将工作得很好。 XML表示在控制器中被控制,而不是在视图中,这看起来有些杂乱,但只要你不喜欢就不会太糟糕。
选项2用于创建名为.xml.erb而不是普通的.html.erb的模板。这些只是正常ERB标记的XML文件。如果请求在其末尾带有.xml的URL,默认行为(在控制器中使用普通脚手架)是显示这些模板而不是HTML)。通常支架具有像块:
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @object.to_xml }
end
在这种情况下(假设你要允许HTML以及)你要删除的format.xml线{}块所以它回落到默认模板。
选项3是使用类似Builder(这非常非常光滑,并包含在Rails中)编写自己的对象 - > XML映射。突然你的模型担心它的观点。
我建议你做选项1,直到你开始遇到麻烦为止(有时看起来良性的改变会导致XML输出改变 - 也许重新排序标签),然后切换到选项2。它非常清楚显示的内容,就像具有HTML视图文件一样。选项3的作品,但你混合逻辑(你的模型的其余部分)与演示文稿。
相关问题
- 1. Ruby On Rails - XML-RPC
- 2. Ruby on Rails XML生成
- 3. CMS on Ruby on Rails
- 4. Ruby与Ruby On Rails
- 5. Flex Ruby on Rails http xml请求错误
- 6. Ruby on Rails:使用XML Builder Partial
- 7. ruby on rails xml生成器问题
- 8. ruby on rails form_for
- 9. Ruby on Rails - Sqlite3
- 10. Ruby on Rails - send_file
- 11. LocalJumpError(Ruby on Rails)
- 12. Mootools + Ruby on Rails ==?
- 13. Ruby on Rails + Devise
- 14. OCIError(ruby on rails)
- 15. Docsplit Ruby on Rails
- 16. Ruby on Rails Time.now
- 17. Ruby on rails console
- 18. Ruby On Rails Application.html.haml
- 19. Ruby on Rails remote_form_tag
- 20. Ruby on Rails Time.zone.now
- 21. ruby on rails - spree.js'jquery.ui.all'
- 22. Ruby on rails redirect_to
- 23. Ruby ON rails- Webrick
- 24. Ruby on rails hosting
- 25. ActiveRecordNotFound Ruby On Rails
- 26. Ruby on Rails + EventMachine?
- 27. Ruby on Rails Secrets.yml
- 28. Ruby on Rails + Ajax
- 29. Ruby on Rails&Javascript
- 30. MongoDb Ruby on Rails