Nested Attributes not Working in Form

I have a form that uses two models - badge and badge winners. The
user_id
and community_id fields are needed for badge_winners which is nested in
badges. I was trying to learn from Ryan B.’ Railscast (
http://railscasts.com/episodes/196-nested-model-form-part-1)

The error I’m getting is:
ActiveRecord::UnknownAttributeError in BadgesController#create
unknown attribute: user_id

app/controllers/badges_controller.rb:42:in `new’

LIne 42 corresponds to this line in :create
@badge = Badge.new(params[:badge])

here’s the controller:

def new
@badge = Badge.new
badge_winner = @badge.badge_winners.build
respond_with(@badge)
end

def create
@badge = Badge.new(params[:badge])
if @badge.save
flash[:notice] = “Badge was successfully created.”
redirect_to home_path
else
flash[:notice] = “There was a problem creating your badge.”
redirect_to home_path
end
end

Here’s the form (both community_id and user_id are populating fine):

<%= form_for(@badge) do |f| %>

<%= f.label :Description %>
<%= f.text_area :description %>

<%= f.fields_for :badge_winners do |builder| %>
     <%= builder.hidden_field :user_id ,:value => user_id %>
     <%= builder.hidden_field :community_id ,:value => community_id 

%>
<% end %>

<%= f.submit "Give Badge" %>

<% end %>

The models (user_id and community_id are fields in the BadgeWinner
table):

class Badge < ActiveRecord::Base
belongs_to :community
has_many :badge_winners, :dependent=>:destroy
accepts_nested_attributes_for :badge_winners
end

class BadgeWinner < ActiveRecord::Base
belongs_to :user
belongs_to :badge
end

I’m hoping someone’s able to help. I just know it’s a newbie error
somewhere. Thanks in advance for any assistance!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs