in your post_comment method

def post_comment
    @comment = Comment.new(params[:comment])
    respond_to do |format|
    if Comment.save
    flash[:notice] = "Comment added"
    format.html { redirect_to(@family, @album) }
  end
end
end

change the arguments in redirect_to
@album to @comment.album
and
@family to @comment.album.family

OR

change the whole line
format.html { redirect_to(@family, @album) }
to
format.html { redirect_to(family_album_path(@comment.album.family,
@comment.album)) }

whichever is easier for you.



On Oct 1, 12:39 am, Ryan <[EMAIL PROTECTED]> wrote:
> Still having trouble on this one - anyone have any ideas?
>
> Here's the log entry:
>
> Processing AlbumsController#post_comment (for 127.0.0.1 at 2008-09-30
> 19:33:18) [POST]
>   Session ID:
> BAh7CToMdXNlcl9pZGkGOg5yZXR1cm5fdG8iEC9mYW1pbGllcy8xOgxjc3Jm
> X2lkIiUxY2U3ODYyNjI4ZWJkMWY1MDdmOTI0NGRkYmRjNTFhNSIKZmxhc2hJ
> QzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVz
> ZWR7AA==--e3e9afa3685c8211fcda8482f58bfc32105cb627
>   Parameters: {"commit"=>"Submit",
> "authenticity_token"=>"daf5fa075e733d5c8ac954d81b3304d783361e68",
> "action"=>"post_comment", "controller"=>"albums",
> "comment"=>{"text"=>"test", "album_id"=>"1", "user_id"=>"1"}}
>
> ActiveRecord::RecordNotFound (Couldn't find Family without an ID):
>
> So, I believe that the action in the album controller is working
> correctly, since it is being processed, and all of the data is passing
> through correctly in the parameters, but it is still directing me back
> to /album/post_comments instead of /families/id/albums/id - any ideas?
>
> Thanks,
> Ryan
>
> On Sep 29, 10:33 pm, Ryan <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I'm new to rails and I'm building a small app.  I have an album model
> > that can have many comments.  Albums belong to families, laid out in
> > routes.rb.  I want to be able to add comments in my /albums/
> > show.html.erb.  I currently have this in the album controller:
>
> > def post_comment
> >     @comment = Comment.new(params[:comment])
> >     respond_to do |format|
> >     if Comment.save
> >     flash[:notice] = "Comment added"
> >     format.html { redirect_to(@family, @album) }
> >   end
> > end
> > end
>
> > and in the show.html.erb
>
> > <div id="comments">
> > <center>
> > <% if @album.has_comments? %>
> > <% for comment in @album.comments %>
> >         <%= comment.user.login %> on <%= comment.created_at %>
> >         <%=h comment.text %>
> > <% end %>
> > <% end %>
> > </center>
> > </div>
>
> > <%= link_to_function "Add another comment" do |page|
> >         page.insert_html :bottom, :comments, :partial => 'comments' end %>
>
> > and the _comments.html.erb looks like:
>
> > <% form_for(:comment, :url => {:action => "post_comment"})  do |f| %>
> > ...
> > <% end %>
>
> > routes.rb:
>
> >   map.resources :families do |families|
> >     families.resources :albums
> >   end
>
> > The problem is that whenever I hit submit in the Albums show view, it
> > re-directs me to /albums/post_comment, which doesn't work because it
> > can't find a family.id - I would like to remain on the /family/id/
> > album/id page.  Is there something else I need to do here because the
> > Album controller is a nested resource?
>
> > Thanks,Ryan
--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to