So I'm a newbie to Rails and attempting to add multiple models to a
form.

I found the Railscast for "Complex Forms, Part 1" at
http://railscasts.com/episodes/73-complex-forms-part-1 which is from
2007 and at the point where the moderator, Ryan, says "Let's take a
look at our code..." and refreshes the UI and in the Railscast we see
3 Tasks below the Project.  However, when I refresh my project screen,
my code shows a "NoMethodError" in the Controller with an undefined
method for the prepsteps that were added.  I'm not following the
Project/Task models, but am building a Recipe/Preparation Steps models
to learn Rails. Not sure what's up except my controller needs a method
somewhere.  I'm using Rails 2.3.4.  Any sugggestions?

Thanks in advance!!
--------------------------------------

Error message:
NoMethodError in RecipesController#new

undefined method `prepsteps'

Following is my code:
recipes_controller.rb
  def new
    @recipe = Recipe.new
    3.times { @recipe.prepsteps.build }

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

recipes\new.html.erb
    <% for prepstep in @recipe.prepsteps %>
        <% fields_for "recipe[prepstep_attributes][]", prepstep do |
prepstep_form| %>
          <p>
            <%= prepstep_form.text_field :step_number %>
            <%= prepstep_form.text_field :step %>
          </p>
        <% end %>
    <% end %>

recipe.rb
class Recipe < ActiveRecord::Base
  validates_presence_of :name

  has_many :prep_steps, :dependent => :destroy

  accepts_nested_attributes_for :prep_steps
end

prep_steps.rb
class PrepSteps < ActiveRecord::Base
  has_one :recipe, :dependent => :destroy

  validates_presence_of :recipe
end

--

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