Passing information to the controller from view

Hi everyone,

I have a template called createFile.html.erb which has some ruby
code in it. The ruby code pulls information from the database because i'm looping through some records. Is it possible to send all of the information in the createFile.html.erb output to the createFile method in the controller? I'm wanting to save the content of it all to a text file...

render_to_string ?

Fred

Frederick Cheung wrote:

render_to_string ?

Fred

render_to_string puts the whole html document in the data including the template, however I only need part of the file. This code might explain it a little better.

#demo_controller.rb    1. def createFile    2. render_to_string :layout => false    3. @demo = Demo.find(params[:id])    4.    5. data = render_to_string    6.    7. f = File.open("#{RAILS_ROOT}/public/demo/demotest.txt", "wb")    8. f.write(data)    9. f.close   10.   11. end

#demo/createFile.html.erb    1. ModelTemp {    2. Name "Mod"    3. Halt 0.0    4. DType "Define"    5. FData {    6. Events {    7. <% for event in display_demo_events(@demo) %>    8. Event {    9. Name "<%= event.name -%>"   10. Desc "<%= event.description -%>"   11. Constant {FRate="<%= event.f_rate -%>"}   12. }   13. <% end %>   14. }   15. Outputs {   16. <% for deviation in display_demo_events(@demo) %>   17. Deviation {   18. Name "<%= deviation.output_class -%>"   19. "<%= deviation.description -%>"   20. }   21. <% end %>   22. }   23. }   24. }

Frederick Cheung wrote:

render_to_string ?

Fred

render_to_string puts the whole html document in the data including
the template, however I only need part of the file. This code might
explain it a little better.

#demo_controller.rb   1. def createFile   2. render_to_string :layout => false

render here...

  3. @demo = Demo.find(params[:id])   4.   5. data = render_to_string

...and here??? (without giving :layout => false)

In your controller, you just need

   data = render_to_string({:action => 'create.html.erb', :layout=>false})

I'm doing a PDF (using HTMLDOC) that way. Works awesome.

bphogan at gmail dot com