我試圖使用delayed_job
通過XMLrender_to_string在LIB類不工作
更新遠程數據庫在我的lib文件夾,我把同一個類文件應該做template.xml.builder
一個render_to_text
,但我得到:
undefined method `render_to_string' for #<SyncJob:0x7faf4e6c0480>...
我在做什麼錯?
我試圖使用delayed_job
通過XMLrender_to_string在LIB類不工作
更新遠程數據庫在我的lib文件夾,我把同一個類文件應該做template.xml.builder
一個render_to_text
,但我得到:
undefined method `render_to_string' for #<SyncJob:0x7faf4e6c0480>...
我在做什麼錯?
ac = ActionController::Base.new()
ac.render_to_string(:partial => '/path/to/your/template', :locals => {:varable => somevarable})
render_to_string
定義於ActionController::Base
。由於類/模塊定義在Rails控制器範圍之外,因此該功能不可用。
你將不得不手動渲染文件。我不知道你在使用你的模板(ERB,Haml等)。但是你將會加載模板並自己解析它。
所以,如果僱員再培訓局,這樣的事情:
require 'erb'
x = 42
template = ERB.new <<-EOF
The value of x is: <%= x %>
EOF
puts template.result(binding)
你將不得不打開模板文件和內容發送到ERB.new
,但練習留給你。以下是ERB的docs。
這是一般的想法。
你可以把你的template.xml.builder
到部分(_template.xml.builder
),然後通過實例化一個ActionView::Base
,並呼籲render
av = ActionView::Base.new(Rails::Configuration.new.view_path)
av.extend ApplicationController.master_helper_module
xml = av.render :partial => 'something/template'
我還沒有使用XML嘗試過它渲染它,但它與HTML的諧音效果很好。
我得到的問題:未定義的方法'新」爲Rails ::配置Module – 2011-09-26 05:48:24
我曾與一個不確定的輔助方法,然後我用的ApplicationController
ApplicationController.new.render_to_string
同樣在這裏。你有沒有修復未定義的幫手? – nathanengineer 2015-05-03 18:29:56
在我的情況下,我在調用AplicationController時忘記了一個名稱空間。 我嘗試: 'Usr :: ApplicationController.new.render_to_string' 它的工作原理。 – Germano 2015-05-04 19:40:26
如果你試圖用實例使用變量,像這樣':locals => {:@instance_variable => value}' – 2013-05-15 02:13:14
我得到Missing模板錯誤,好像它沒有發現部分內容,我檢查了很多次拼寫。仍然沒有..請幫助 – AirWick219 2014-09-27 06:16:13
你會得到「Missing template」錯誤,因爲ActionController :: Base會在'action_controller/base'路徑中搜索。委託給另一個控制器。無論如何它通常會繼承'ActionController :: Base'。 – 2014-10-15 08:57:16