Rieles que crean dos modelos en una forma

Hola, estoy tratando de crear dos objetos de diferentes modelos en una sola forma. Están conectados por una relación has_many/belongs_to. El evento tiene_muchas imágenes que es polimórfica porque se puede asociar con otros modelos. Recibo No se pueden asignar atributos protegidos en masa: imagen si configuro: imagen en attr_accesible me dice "atributo desconocido: imagen".

Aquí está mi código de formulario:

    <%= form_for @event, :html => { :class => 'form-horizontal' } do |f| %>
  <div class="control-group">
    <%= f.label :titre, :class => 'control-label' %>
    <div class="controls">
      <%= f.text_field :titre, :class => 'text_field' %>
    </div>
  </div>
  <div class="control-group">
    <%= f.label :Date, :class => 'control-label' %>
    <div class="controls">
      <%= f.date_select :dday, :class => 'date_select', :start_year=>Date.today.year, :end_year=>1905 %>
    </div>
  </div>
  <div class="control-group">
    <%= f.label :lieux, :class => 'control-label' %>
    <div class="controls">
      <%= f.text_field :lieux, :class => 'text_field' %>
    </div>
  </div>
  <div class="control-group">
    <%= f.label :description, :class => 'control-label' %>
    <div class="controls">
      <%= f.text_area :commentaire, :class => 'text_area', :rows => 4 %>
    </div>
  </div>
  <%= f.fields_for @event.pictures.new do |p| %>
    <%= p.text_field :name, :placeholder=>"Nom de votre image" %>
    <%= p.file_field :image %>
  <% end %>

y mi código de modelos

 class Event < ActiveRecord::Base
  attr_accessible :dday, :lieux, :titre, :commentaire, :picture
    belongs_to :user
    has_many :pictures, :as => :imegeable ,:dependent => :destroy
    default_scope :order => :dday
    validates :dday, :titre, :presence=>true
end

Gracias por tu ayuda.

preguntado el 09 de marzo de 13 a las 14:03

2 Respuestas

Ha pasado un tiempo desde que hice cualquier trabajo de Rails, por lo que esto podría haber cambiado desde la última vez que lo hice, pero creo que debe especificar que accepts_nested_attributes_for :pictures en su modelo de Evento.

respondido 09 mar '13, 14:03

Cuando lo estoy haciendo, aparece un nuevo error "No se encontró ninguna asociación para el nombre 'imagen'. ¿Ya se definió?" - user1796260

Se corrigió un error tipográfico: pictures, más bien que picture. - CrisC

lo siento no entiendo lo que quieres decir? - user1796260

Mi respuesta original decía accepts_nested_attributes_for :picture. Cambié esto a accepts_nested_attributes_for :pictures. Intentar accepts_nested_attributes_for :pictures. - CrisC

Recibo el mensaje de que no se puede asignar en masa de nuevo: user1796260

Intente cambiar last fields_for de su código a:

<%= f.fields_for :pictures do |p| %>
  <%= p.text_field :name, :placeholder=>"Nom de votre image" %>
  <%= p.file_field :image %>
<% end %>

Añade a tu modelo:

accepts_nested_attributes_for :pictures

Y cambie attr_accessible en su modelo a:

attr_accessible :dday, :lieux, :titre, :commentaire, :pictures_attributes

respondido 09 mar '13, 23:03

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