2

契約言語の現在の状態に基づいて動的に生成されるオンライン契約契約を行っています(ERBパーシャルに保存されています)。

ユーザーが[同意する]をクリックすると、変数データが​​保存されますが、レンダリングされた部分(htmlフラグメント)の内容もデータベースに保存したいと思います。

使用してみActionView::Helpers::CaptureHelper.captureました-部分全体をブロックでラップし、最後にレンダリングします。

<% @saved_output = capture do %>
...
The rest of the erb with instance variable <%= @my_class.name %> and so on
...
<% end %>
<%= @saved_output %>
<% logger.debug "Rendered output is: #{@saved_output}" %>

そして、これは同じ結果を生成し、ログに正しいテキストを送信しました。@saved_output = nilしかし、それは範囲外になっているように見えます-レンダリングする前に宣言したとしても、それnilはブロックを終了するときです。

私も使っcontent_forてみました...それは私にはある程度意味がありますが...ええと、それが得られませんでした。役立つポインタをいただければ幸いです。

4

1 に答える 1

3

render_to_stringレコードを作成するときにコントローラーで試しましたか?これにより、先に進んでページを「スナップショット」することができます。

于 2012-10-18T03:43:48.187 に答える