In my Ruby on Rails application I have a page Aboutus - This has a Controller and View. Has no model. I have a Comments model (generated by the rails generate scaffold comment) - This has a Controller, view, model On my Aboutus page, I want to show the "Comments" from the comments model, so I am thinking of using the Comments index action (to list comments) and new action (to create new comments) on my Aboutus page. I am having trouble getting this right. This is what I did: Aboutus controller, I added redirect_to :controller => "comments", :action => "index" Aboutus views, I added <%= render ''comments/index'' %> It doesnt work, gives me Undefined redirect_to and nil object @comments errors. Could you advise me 1. A proper way to do this 2. Syntax 3. Any thing to do to config.rb ? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
You need to take the redirect_to out of the about_us action, and instead just set an instance variable that has the comments that you want to display. # app/controllers/pages_controller.rb class Pages < ApplicationController def about_us @comments = Comment.all end end Then all you need to do is render the comments page. # app/views/pages/about_us.html.erb <%= render ''comments/index'' %> # app/views/comments/index.html.erb <%= for comment in @comments %> ... However, really you should put the part of the comments/index.html.erb that is shared with about_us.html.erb into a partial, so that both views can use the same code. # app/views/comments/_all_comments.html.erb <%= for comment in comments %> ... ''comments'' is a local variable here, so you need to define this variable when you call the ''render'' method. # app/views/pages/about_us.html.erb <%= render ''comments/all_comments'', :comments => @comments %> -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Arailsdemo A. wrote in post #959802:> You need to take the redirect_to out of the about_us action, and instead > just set an instance variable that has the comments that you want to > display. >That is Awesome, just works like I wanted. Thank you so much. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.