"Missing Template" when manually creating views

Hi everyone,

  I am trying to set up a controller and a view manually, without the aid of scaffolding (though I am using a scaffolded model as reference).

I have set up my controller like this:

class RecetasController < ApplicationController   def index     respond_to do |format|       format.html #index.html.erb     end   end end

I have created a single file named index.html.erb inside app/views/receta. So far in only has a few HTML lines. When I access http://localhost:3000/recetas, I get this message on my browser:

"Missing template recetas/index.erb in view path app/views"

What gives? Scaffolded models generate .html.erb files and they work right! So I go ahead and change my view to be named index.erb. I still get the same error message! What am I missing?

tuti plain wrote:

Hi everyone,

  I am trying to set up a controller and a view manually, without the aid of scaffolding (though I am using a scaffolded model as reference).

I have set up my controller like this:

class RecetasController < ApplicationController   def index     respond_to do |format|       format.html #index.html.erb     end   end end

I have created a single file named index.html.erb inside app/views/receta. So far in only has a few HTML lines. When I access http://localhost:3000/recetas, I get this message on my browser:

"Missing template recetas/index.erb in view path app/views"

What gives? Scaffolded models generate .html.erb files and they work right! So I go ahead and change my view to be named index.erb. I still get the same error message! What am I missing?

Could you please give the log printed in the webrick ?

Actually I faced this error during the time of placing wrong code inside environment.rb file.

Thanks

Hello,

I believe folder which holds views for recetas controller must be named in plural: recetas ...from your post i can see that its in singular: "I have created a single file named index.html.erb inside app/views/receta."

Hi everyone,

I am trying to set up a controller and a view manually, without the

aid of scaffolding (though I am using a scaffolded model as reference).

I have set up my controller like this:

class RecetasController < ApplicationController

def index

respond_to  do |format|

  format.html #index.html.erb

end

end

end

I have created a single file named index.html.erb inside

app/views/receta. So far in only has a few HTML lines. When I access

http://localhost:3000/recetas, I get this message on my browser:

“Missing template recetas/index.erb in view path app/views”

What gives? Scaffolded models generate .html.erb files and they work

right! So I go ahead and change my view to be named index.erb. I still

get the same error message! What am I missing?

Hi, you’ll need to rename the ‘receta’ folder to ‘recetas’.

Good luck,

-Conrad

I have created a single file named index.html.erb inside app/views/receta.

As the message says, it should be app/views/recetas

Hi,

  Thanks, you were right, renaming the folder solved the problem. I think I'll never fully understand the plurals and singulars in Rails. What I don't get is why the scaffolded model has its views named like .html.erb but my manually created one has to be .erb only. I have no problem in doing it like that, but I'd like to understand why it is.

Thanks again.

They do not have to be named .erb only. Rails looks for a range of names, one of which is .erb, the error message can be confusing. .html.erb is the recommended way for html generated by erb.

Colin