Forum: Ruby on Rails Passing information to the controller from view

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ryan M. (Guest)
on 2009-01-07 19:33
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...

Or is there an easier way to produce the same outcome?

Thanks,
McKenzie.
Frederick C. (Guest)
on 2009-01-07 19:41
(Received via mailing list)
On 7 Jan 2009, at 17:33, Ryan M. wrote:

>
render_to_string ?

Fred
Ryan M. (Guest)
on 2009-01-08 01:45
Frederick C. wrote:
> On 7 Jan 2009, at 17:33, Ryan M. 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. }
Rob B. (Guest)
on 2009-01-08 02:22
(Received via mailing list)
On Jan 7, 2009, at 6:45 PM, Ryan M. wrote:

> 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)
Brian H. (Guest)
on 2009-01-08 03:11
(Received via mailing list)
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.
Ryan M. (Guest)
on 2009-01-08 16:47
Brian H. wrote:
> 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.

Hi Brian, that works a treat thanks.  I'm also trying to output some
information to a pdf.  Have you got an email address I can contact you
at?

Thanks
Brian H. (Guest)
on 2009-01-08 20:52
(Received via mailing list)
bphogan at gmail dot com

On Thu, Jan 8, 2009 at 8:47 AM, Ryan M.
This topic is locked and can not be replied to.