Atributos anidados que no funcionan en forma de rieles

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 Bates' Railscast (http://railscasts.com/episodes/196-nested-model-form-part-1)

El error que estoy obteniendo es:

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

This is a similar problem, but I don't have the syntax cause: El formulario con atributos anidados con una asociación has_one no funciona en Rails 3

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

preguntado el 10 de marzo de 12 a las 00:03

Que es user_id set to on this line <%= builder.hidden_field :user_id ,:value => user_id %>? -

Do you have the column user_id in your table? -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.