Rails 3 - Helping with a Commenting Module

class CommentsController < ApplicationController

      def create

        @commentable= context_object()
    @comment =

@commentable.comments.build(params[:comment].merge(:user_id =>
current_user.id))

    if @comment.save
      respond_to do |format|
       format.js
      end
    else
      render :action => 'new'
    end
  end

  private

  def context_object
    params[:constraint]

[:context_type].singularize.classify.constantize.find( context_id )
end

  def context_id
    params["#{ params[:constraint][:context_type].singularize }

_id"]
end

end

This commenting module has served me well but I ran into a hitch this
morning, possibly because of my use of nested resources. Essentially,
I now have a URL like:

/projects/3/albums/6/attachments/84

When I comment on that page, I get the error:

ActiveRecord::RecordNotFound (Couldn't find Project without an

ID):
app/controllers/comments_controller.rb:102:in context_object' app/controllers/comments_controller.rb:14:increate’

My routes file looks like:

resources :projects do
resources : albums do
resources :attachments
end
end

resources :attachments do
    resources :comments, :only =>

[:create, :update,:destroy], :constraint => {:context_type =>
“conversations”}
end

Any ideas on how I can get the commenting module to play nicely with
commenting on project>Album>Attachment ?

Thanks for the input,

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs