I'v read: Rails: Pass parameters with render :action? ,but I'm still having problems.
My URL for the new page is: http://localhost:3000/submit?category_id=2. Submitting the form the first time works without any problems, but if the creation fails and the controller renders a new page I get an error can't find category without id because the parameter is not being passed.
Here's a short version of the new.html.erb and new/create controllers
def new ... @category = params[:category_id] @title = "Submit a review" end def create .... if @review.save flash[:success] = "New a Created" redirect_to user_path(@user) else @title = "New Review" render :action => 'new', :category_id => @category end end
Line 1 below is giving me the error.
<h1>Blah, blah, blah<%= "best #{Category.find(@category).name}" %></h1> <br /> <%= form_for(...) do |f| %> <%= render 'shared/error_messages', :object => f.object %> <tr> <td> <%= select_tag(... %></td> <td><%= collection_select(...) %><br /> %></td> <td><%= f.text_field ... %></td> </tr> </table> <%= f.hidden_field :category_id, :value=>@category %> <div class="actions"> <%= f.submit "Add" %> </div> <% end %>
Any help is appreciated. I've been going in circles for hours.