2011-08-15 17 views
2

コントローラアクションの出力を文字列として取り込むことができる必要があります。比較的簡単なことだと思いますが、レンダリング/レンダー_to_stringメソッドを取得できません働くコントローラアクションの出力をキャプチャ

私はコントローラとアクションへの参照を格納し、それがプロセス(実際にはサーバ側の印刷)でさらに上の出力ですつかむことができることができるようにする必要があり

任意のアイデア - のおかげ? (モデル内)のような/ render_to文字列をレンダリング使用

view = ActionView::Base.new(ActionController::Base.view_paths) 
view.extend ApplicationHelper 
output = view.render(:action => '<someaction>', :controller => '<somecontroller') 

これはもたらします。

私はrender_to_stringを使用しようとします。

undefined method `render_to_string' for #<ActionView::Base:0x0000010400c760> (NoMethodError) 
+0

方法をお見せ'render_to_string'を使用してください。 – fl00r

+0

[Webページにアクセスせずにコントローラのアクションのレンダリングされた出力を取得するにはどうすればよいですか?](http://stackoverflow.com/questions/4106724/how-do-i-get-the-rendered-output-おそらくオプションである - – Simon

答えて

1

なぜカールを使用しませんか? カール宝石を使用して

curl http://localhost:3000/controller/action 

、あなたも、コンソールからそれを呼び出すことができます。

require 'curl' 
page = CURL.new.get('http://localhost:3000/controller/action') 

UPDATE

レールコンソールから:

app.get('/controller/action') 
app.response.body 
+0

- ローカルの接続からローカルに克服する必要がありますが、URLは保護されています –

+0

OK、私の更新を見てください。 railsコンソールからページコンテンツを直接取得するにはいくつかの方法がありますが、これは最も簡単な方法です。 –