在進行J2EE開發時,我發現調試時很方便查看由JSP編譯器生成的Java類。在Ruby中,如何檢查由.html.erb模板生成的類?
我該如何在Ruby中做同樣的事情?由於它全部在內存中,它不會生成我可以查看的文件。我相信這是爲模板生成相應對象的ERB模塊,所以我如何才能真正查看該對象?我可以在某處放置調試器語句並使用rdb嗎?是否有一些配置值可以告訴它轉儲對象定義?我正在使用rails,以防有所作爲。
在進行J2EE開發時,我發現調試時很方便查看由JSP編譯器生成的Java類。在Ruby中,如何檢查由.html.erb模板生成的類?
我該如何在Ruby中做同樣的事情?由於它全部在內存中,它不會生成我可以查看的文件。我相信這是爲模板生成相應對象的ERB模塊,所以我如何才能真正查看該對象?我可以在某處放置調試器語句並使用rdb嗎?是否有一些配置值可以告訴它轉儲對象定義?我正在使用rails,以防有所作爲。
我不認爲rails會爲您的視圖生成一個類。處理文件後基本上調用eval
。或者你的意思是在解析模板時檢查erb對象?
如果是後者,你可以在lib \ ruby \ 1.9.1中找到erb.rb我想你可以在整個文件中放一個調試器語句。
我總是習慣於將以下內容添加到我的視圖(佈局)中,該視圖允許我檢查或調試相關視圖正在使用的參數。
<%= debug(params) %>
這將格式化所有的參數YAML和哈希格式顯示出來。
查看源代碼中的方法以獲得更好的理解。 SOURCE
由於語言差異,與Java方式相比有一些差異。編譯時對Ruby
大多數模板庫,請按照下列步驟/優化:
無論如何,編譯模板代碼,因此看起來很像你的原始模板的多喧鬧的版本,一般不會幫你調試,除非你正在調試的模板語言本身。
任何有興趣的模板語言實現可能享受Tilt code環顧四周(使用不同的模板語言與相同的顯示界面和優化),以及Temple(一個偉大的模板語言間實現)。
我喜歡行調試器,所以Vadim建議在erb.rb中放置調試器語句應該讓我得到我想要的。但你的答案中有趣的信息,謝謝。 – pduey 2011-04-20 18:24:28
爲什麼要「檢查由.html.erb模板生成的類」?你想解決什麼問題?所陳述的問題沒有太大意義,所以我們需要更多的背景。 – 2011-04-08 23:00:50