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