Relaciones HABTM y acepta_atributos_de_tenedores_para
Tengo un formulario que me permite crearnuevas publicaciones de blog y me gustaría poder crearnuevas categorías De la misma forma.
Tengo una relación habtm entre publicaciones y categorías, por eso tengo problemas con esto.
Tengo los siguientes 2 modelos:
class Post < ActiveRecord::Base
has_and_belongs_to_many :categories
attr_accessible :title, :body, :category_ids
accepts_nested_attributes_for :categories # should this be singular?
end
class Category < ActiveRecord::Base
has_and_belongs_to_many :posts
attr_accessible :name
end
Mi formulario me permite elegir entre un grupo de categorías existentes o crear una nueva. Mi forma es la siguiente.
# using simple_form gem
.inputs
= f.input :title
= f.input :body
# the line below lets me choose from existing categories
= f.association :categories, :label => 'Filed Under'
# I was hoping that the code below would let me create new categories
= f.fields_for :category do |builder|
= builder.label :content, "Name"
= builder.text_field :content
Cuando envío mi formulario, se procesa pero no se crea la nueva categoría. Mi salida del símbolo del sistema me dice:
WARNING: Can't mass-assign protected attributes: category
Pero si agregoattr_accessible :category
, Recibo un gran bloqueo con el mensaje de error "atributo desconocido: categoría".
Si cambio los campos_para destino a: categorías (en lugar de categoría), mi formulario ni siquiera se muestra.
Pasé un tiempo tratando de resolver esto y vi los recientes railscasts en nested_models y simple_form, pero no pude solucionar mi problema.
¿Sería esto más fácil si estuviera usando una relación has_many: through (con un modelo de unión) en lugar de un habtm?