2013-08-26 33 views
3

我一直在尋找一種簡單的方法來呈現視圖(或模板)。我只在整個互聯網上看到複雜的解決方案,包括獲取渲染引擎,傳遞上下文,這通常是一個動作視圖實例,它使用從ActionController :: Base獲取的原始視圖路徑進行初始化,然後我終於可以傳遞局部變量,當然,如果我沒有在模板中使用任何實例變量,或者我沒有使用幫助器方法,我必須手動插入/包含所有東西,然後我仍然有一些關於相對部分的位置,這是不會引起外部的軌道上下文.. uhf ...是否有一個主要的對象,我可以調用一個簡單的#render方法?Rails 3.2/4:有沒有一種方法可以輕鬆地從控制檯呈現模板(部分,無論...)?

+0

爲什麼你想從控制檯做到這一點?看起來像一個奇怪的用例。你可能會更喜歡使用類似Liquid的流行http://liquidmarkup.org/ – ADAM

+0

我想你可以有一個ruby文件來完成所有那些複雜的事情,並且當你運行你的控制檯時只包含那個ruby文件。你究竟想達到什麼目的?如果你想調試你的模板,然後把調試器放在你的模板中... – j03w

+0

我厭倦了爲我的茉莉花規格手工編寫模板。我也不想讓我的rspec或黃瓜腳本爲我的茉莉花規格渲染東西來測試(太多的依賴)。所以,我在實際啓動茉莉花:ci任務之前預先渲染必要的部分/模板。 – ChuckE

回答

0

如果你從Rails的控制檯工作,你可以撥打:

> app.get '/' 
> response = app.response 
> body = response.body 
+0

不錯的功能!它在某些方面可能很有用,但是當視圖需要用戶登錄才能呈現我希望看到的完整響應主體時,我恐怕會遇到一些問題。但是,這是我見過的最接近這個問題的答案。你知道我如何屏蔽登錄的用戶會話嗎? – ChuckE

+0

我不知道您需要登錄。有幾種方法可以這樣做,但您可能從發佈其他問題中獲益最多。根據你對用戶進行身份驗證的方式,你可以增加控制檯中的控制器爲'skip_before_filter',你可以改變'app.controller.current_user',你可以通過張貼到合適的路線來登錄,你可以使用warden/rack中間件,你可以改變'app.session'等,這取決於你的實現。 – RubeOnRails

+0

您可能會從以下相關帖子中受益: * http://stackoverflow.com/questions/9544338/rails-3-how-can-you-get-access-to-devises-current-user-in-the- irb-console * http://stackoverflow.com/questions/6209663/how-to-skip-a-before-filter-for-devises-sessionscontroller – RubeOnRails

相關問題