rendering simple html from view/controller

I start apologies for the silly question..but:
how do I show the content of a view in a controller by url I mean why,
with the starting rails conf and I simple scaffold done, i can't do
root/:controller/:action and see the action.html.erb content?
it warns me writing
"Couldn't find Product with ID=new2"
where new2 is an empty method in the controller and with a
new2.html.erb file existing in the view/controller_name folder

I had my guess..but I'd like to better understand how to do this.. I
mean..is this about the routes.rb configuration? or there's a way to
fill the method, don't know some particular use of respond_to ?!

I know it's a really stupid question..but still can't figure out how
this work.
thanks since now :slight_smile:

andrea

Andrea,

You need to provide us with more information. From the info you have
given I cannot figure out what is going on.

"Couldn't find Product with ID=new2"

You say that you have an empty method, but it is trying to find a
Product with ID=new2. I think that it cannot find the correct route from
the routes.rb file.

Actually you should paste all the code snippets from your controller,
view and routes.rb file.

Punit

Ok..so that's what I mean:

I need to create a new view where I want to insert for istance (and in
this exact case) a form that I use to upload a file and then process
the file.
So in first place I create a view "new2.html.erb" in my view folder
associated to a controller let's say "references" with a form in it.
so now i have in the "view/references" folder this new file

how can I access this view? can I without creating a method? I guess I
don't because when I type http://localhost:3000/references/new2 i get
that error:
"Couldn't find Reference with ID=new2"
(but it render the page with the form if I had any kind of id after,
i.e. http://localhost:3000/references/new2/1 )

the question is: why for istance the "index" page or the "new"
generated by the scaffold can render the page (and the form in case of
new) without passing any ID and I can't now? what's the rule
underneath?

my new2.html.erb page contain this:

Andrea,

how can I access this view? can I without creating a method? I guess I
don't because when I type http://localhost:3000/references/new2 i get
that error:
"Couldn't find Reference with ID=new2"
(but it render the page with the form if I had any kind of id after,
i.e. http://localhost:3000/references/new2/1 )

You routes.rb file would also have this line.
   map.resources :references

What this does is that it creates RESTful urls for references. You
should read up on restful routes.

Since the routes.rb files is read top-down, the RESTful url for
references gets more priority over map.connect
':controller/:action/:id'

So maybe you should add a named route for your new2 method(and make sure
its before the map.resources line in your routes.rb) or another
controller to handle uploading of files.

Punit

right!
thx for reply..
I'm going to read a basic restful/routes guide
I guess it's something dealing with GET or POST method
thx :slight_smile:

I meant GET or POST request :wink:

In case you have not seem there there are excellent guides at
http://guides.rubyonrails.org/ including one on routing. I would
suggest starting with Getting Started however which will explain the
basic principles of rails, then work through the others.

Colin

just add
map.resources :referenced , :collection => { 'new2' => 'get' }

Hi guys..I did try almost everything..but still cant' get any result..

Starting from a simple "scaffold" creating a class called "reference"
I have updated the controller with this 2 methods:

I guess is something dealing with this:
attr_accessor :name

isn't it?

then I've updated the routes.rb file with this line (do I have to
replace the already in "map.resources :references" or do i add this
second new line?):
--
map.resources :references, :collection => {"load" => "get"}
--

You have to replace the line.