Could not generate a form

I generated controller and view as.      "script/generate controller home index"

Tried to make a form .Edited the index method in home controller and added follwoing stuff inside

  <%= form_for @home do |f| %>   <%= f.label :first_name %>:   <%= f.text_field :first_name %><br />

  <%= f.label :last_name %>:   <%= f.text_field :last_name %><br />

  <%= f.submit %>   <% end %>

Then started the server But it didnt generate form.Am i missing anything(i hope so).Should anything be added in index.html.erb file in home view?Or else?Using rails 3.0.7.I Have read the form generation tutorils but could not understand lot.So asking here.

Regards

Amrit Pal Pathak

Thanks

I generated controller and view as. "script/generate controller home index"

Tried to make a form .Edited the index method in home controller and added follwoing stuff inside

You added the code below to the index method of the home controller (so in controllers/home_controller.rb)? If so then it is not surprising it did not work. Where did you put it?

<%= form_for @home do |f| %> <%= f.label :first_name %>: <%= f.text_field :first_name %><br />

<%= f.label :last_name %>: <%= f.text_field :last_name %><br />

<%= f.submit %> <% end %>

Then started the server But it didnt generate form.Am i missing anything(i hope so).Should anything be added in index.html.erb file in home view?Or else?Using rails 3.0.7.I Have read the form generation tutorils but could not understand lot.So asking here.

What do you see if you look at the html generated by the above (assuming you have actually put it in one of the views)? In the browser do View > Page Source or similar (dependant on browser).

Colin

Yes it put in index method of home controller.(Seemz it is wrong).        Can you please tell me where to put it(in index.html.erb ) (view)?

Thanks .

I think you said that you worked through the Rails Guide on getting started. Is that correct? Did you really work right through it, examining the code generated by the scaffolding, making sure you understood everything there, and experimenting with small changes to make sure you understand what is going on? If so then I cannot understand how you do not know that code that generates a form for display in the browser must go in one of the view files. *Please* work through the getting started guide again and make sure you understand it. That way will save us all a lot of time.

Once you have worked through that guide then find a more complex one (I think I recommended the free-to-use-online one at railstutorial.org previously) and work through that.

Colin

Ok i will again go through tutorial and understand again.Will try to edit .       Thanks

i read again and now try it myself.Exactly follow the tutorils and try to make changes in new ror app.please go through what i have done.      1) add following content to index method of home controller              class HomeController < ApplicationController

def index     @home = Home.new

    respond_to do |format|       format.html # new.html.erb       format.xml { render :xml => @home }     end   end end

2)Add following to the index.html.erb file inside home view <h1>New post</h1>

<%= render 'form' %>

<%= link_to 'Back'%>

3)Created a new file inside app/view/home/_form.html.erb and added following .(just copy/paste and changed the name according to my methods and controller)         <%= form_for(@home) do |f| %>   <% if @home.errors.any? %>     <div id="error_explanation">       <h2><%= pluralize(@home.errors.count, "error") %> prohibited this home from being saved:</h2>

      <ul>       <% @home.errors.full_messages.each do |msg| %>         <li><%= msg %></li>       <% end %>       </ul>     </div>   <% end %>

  <div class="field">     <%= f.label :name %><br />     <%= f.text_field :name %>   </div>   <div class="field">     <%= f.label :title %><br />     <%= f.text_field :title %>   </div>   <div class="field">     <%= f.label :content %><br />     <%= f.text_area :content %>   </div>   <div class="actions">     <%= f.submit %>   </div> <% end %>

                                       Now i got a error ,it says

uninitialized constant HomeController::Home app/controllers/home_controller.rb:4:in `index'

Please guide me here.where is error?

Thanks

I presume that it is the line @home = Home.new that is failing. That line makes a new object of class Home. That would normally be a model class. Have you defined a model called Home (it would be in models/home.rb).

Colin

I generated a model using "rails generate model home" ,it generated follwoing files

  amrit@ubuntu:~/demo$ rails generate model home       invoke active_record       create db/migrate/20110425113449_create_homes.rb       create app/models/home.rb       invoke test_unit       create test/unit/home_test.rb       create test/fixtures/homes.yml

Then i perform migrations using "rake db:migrate",it gave (Table homes is created)

(in /home/amrit/demo) == CreateHomes: migrating