Can you post your route setup again?

On Fri, Oct 15, 2010 at 4:31 AM, aperture science <[email protected]>wrote:

> Thanks, that gets the comment form loading.
>
> I added:
>
>  def create
>    @comment = Comment.new(params[:comments])
>
>    respond_to do |format|
>      if @comment.save
>        format.html { redirect_to('/', :notice => 'comment posted') }
>        format.xml { render :xml => @comment, :status
> => :created, :location => @comment }
>      else
>        format.html { render :action => "new" }
>        format.xml { render :xml => @comment.errors, :status
> => :unprocessable_entity }
>      end
>    end
>  end
>
> to my controller1_controller.rb file, and now when I click the submit
> button, I get the following error
> "uninitialized constant CommentsController"
>
> Despite the redirect_to('/', ...) the page is redirecting to /comments
>
>
> On Oct 14, 6:26 am, Erol Fornoles <[email protected]> wrote:
> > Hmmm wait, I just noticed something. Could you rename your Comments
> > model to Comment (from plural to singular). Don't forget to rename the
> > model file (comments.rb to comment.rb)
> >
> > On 10/14/10 8:52 PM, aperture science wrote:
> >
> >
> >
> > > I'm still getting the "undefined method `comments_index_path'" error
> >
> > > The extracted source points at:
> > >   <%= form_for(@comment) do |format| %>
> >
> > > I cannot find where that method would be being called from
> > > even..."comments_index_path" only appears in the development.log
> >
> > > On Oct 14, 3:08 am, Erol Fornoles <[email protected]> wrote:
> > >> You were using a singular resource when you should have defined a
> plural
> > >> one. Also, you can specify the controller on your RESTful route
> instead
> > >> of having to create a separate map.connect or match:
> >
> > >> resources :comments, :controller => 'controller1'
> >
> > >> I recommend that you use consistent naming with your controllers and
> > >> routes though.
> >
> > >> HTH
> >
> > >> On 10/14/10 5:53 PM, aperture science wrote:
> >
> > >>> I'm trying to learn rails as I go along, and having a bit of trouble.
> > >>> There is an undefined method cropping that I don't know why rails
> > >>> thinks should be there.
> >
> > >>> Firstly, I'm using rails 3, ruby 1.9.2
> >
> > >>> I have a controller with an index action This part works fine, but i
> > >>> am trying to add a comment form to the page that is rendered by that
> > >>> index action.
> >
> > >>> Supposing my controller is named controller1,
> >
> > >>> I began this process first with:
> >
> > >>> rails g model comments name:string content:text
> > >>> rake rb:migrate
> >
> > >>> Then I went on to define an action to create the comments:
> >
> > >>> within contoller1_controller.rb I added
> > >>> =========
> > >>>   def new
> > >>>     @comment = Comments.new
> >
> > >>>     respond_to do |format|
> > >>>       format.html
> > >>>       format.xml { render :xml => @comment }
> > >>>     end
> > >>>   end
> > >>> ========
> >
> > >>> views/controller1/new.haml contains
> > >>> ========
> > >>> = render 'form'
> > >>> ========
> >
> > >>> and _form.html.erb contains
> > >>> ========
> > >>> <%= form_for(@comment) do |format| %>
> >
> > >>> <div class='commentForm'>
> > >>>   <%= format.label :name %><br />
> > >>>   <%= format.text_field :name %><br />
> >
> > >>>   <%= format.label :content %><br />
> > >>>   <%= format.text_area :content %><br />
> > >>>     <div class='commentSend'>
> > >>>       <%= format.submit %>
> > >>>     </div>
> > >>> </div>
> >
> > >>> <% end %>
> > >>> =======
> >
> > >>> I then added into routes.db the following lines:
> > >>> resource :comments
> > >>>   map.connect '/controller1/new', :controller =>
> > >>> 'controller1', :action => 'new'
> >
> > >>> Now, navigating to /controller1/new gives me this error:
> >
> > >>> undefined method `comments_index_path'
> >
> > >>> What am I missing?
> >
> > >>> If I change the form to "form_for(:Comments)", then
> '/controller1/new'
> > >>> renders, however, when I then add  "@comments = Comments.all" into
> the
> > >>> index definition, and:
> > >>>   - @comments.each do |comment|
> > >>>     - comment.content
> > >>> into the index.haml file, no comments are actually displayed. So I
> > >>> assume the form is not actually sending anything to the database
> >
> > >>> Any tips on what I'm doing wrong would be greatly appreciated,
> >
> > >>> Thanks
> >
> > >> --
> > >> Erol Fornoleshttp://
> github.com/Erolhttp://twitter.com/erolfornoleshttp://ph.linked...
> >
> > --
> > Erol Fornoleshttp://
> github.com/Erolhttp://twitter.com/erolfornoleshttp://ph.linkedin.com/in/erolfornoles
>
> --
> 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]<rubyonrails-talk%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>


-- 
Erol M. Fornoles
http://github.com/Erol
http://twitter.com/erolfornoles
http://ph.linkedin.com/in/erolfornoles

-- 
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