Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails ignoring render and redirect_to

I've got a really simple rails question here but I can't seem to find the answer anywhere. I guess some of the problems stem from me following a tutorial for Rails 1.2 with Rails 2.1. Anyway..

I'm writing a blog system and I'm implementing the comments bit. I have comments displaying fine once I've created them using script/console, but getting the comment form itself working is the hard bit.

In posts_controller.rb I have

  def comment
    Post.find(params[:id]).comments.create(params[:comment])
    flash[:notice] = "Added comment"
    #render :action => show
    redirect_to :action => show
  end  

and in show.html.erb (the view) I have

<%= form_tag :action => "comment", :id => @post %>
  <%= text_area "comment", "body" %><br>
  <%= submit_tag "Post Comment" %>

When I submit the form it tries to go to the urb /posts/comment/1 which is obviously incorrect, and it complains that it can't find a template. Obviously I don't want a template there because I've told it to redirect to the show action because I want it to just re-display the post's show page, with the new comment there.

I've tried both the commented out line (render :action => show) and the redirect_to line, and neither seem to do anything at all.

I'm sure I'm missing something simple, but what is it?

like image 673
robintw Avatar asked Oct 21 '08 20:10

robintw


1 Answers

Does redirect_to :action => 'show', :id => params[:id] with quotes around show work?

like image 185
RichH Avatar answered Oct 18 '22 02:10

RichH