Imbriqués les attributs pour belongs_to association rails

J'ai deux modèles, de la Plainte et de l'Entreprise. Plainte belongs_to et accepts_nested_attributes pour la Société, et la Société has_many Plaintes.

# Models

class Complaint < ActiveRecord::Base
  attr_accessible :complaint, :date, :resolved

  belongs_to :user, :class_name => 'User', :foreign_key => 'id'
  belongs_to :company, :class_name => 'Company', :foreign_key => 'id'
  has_many :replies

  accepts_nested_attributes_for :company

end

class Company < ActiveRecord::Base
  attr_accessible :name

  has_many :complaints, :class_name => 'Complaint', :foreign_key => 'id'
  has_many :branches, :class_name => 'Branch', :foreign_key => 'id'
  belongs_to :industry

end

Dans la Plainte Contrôleur j'essaie de construire une Entreprise dans la nouvelle méthode.

# Complaint Controller

class ComplaintsController < ApplicationController
...
def new
    @complaint = Complaint.new
    @complaint.build_company

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @complaint }
    end
  end
...
end

Dans le formulaire, j'ai ajouté un champ pour ajouter un attribut de nom de la Société.

# Complaint Form

<%= form_for(@complaint) do |f| %>
  <% if @complaint.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@complaint.errors.count, "error") %> prohibited this complaint from being saved:</h2>

      <ul>
      <% @complaint.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :complaint %><br />
    <%= f.text_area :complaint, :rows => 5 %>
  </div>
  <div class="field">
    <%= f.label :date %><br />
    <%= f.datetime_select :date %>
  </div>

  <% if current_user.try(:admin?) %>
    <div class="field">
      <%= f.label :resolved %><br />
      <%= f.check_box :resolved %>
    </div>
  <% end %>

  <%= fields_for :company do |company| %>
    <div class="field">
      <%= company.label :name, 'Company' %>
      <%= company.text_field :name %>
    </div>
  <% end %>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Le formulaire soumet, mais seulement la Plainte est enregistrée. L'entrée de l'utilisateur de l'Entreprise est ignoré. Pourquoi ne pas créer une nouvelle Société?

Salut @pjmil, je suis confronté au même problème.vous s'il vous plaît dites-moi fort paramètre de la Plainte par le Contrôleur?
Salut, je suis face à un même problème. Comment avez-vous résoudre ce problème.
Merci beaucoup pour le post. Mais pourriez-vous s'il vous plaît partagez vos bons paramètres pour le même. Également, si possible, pouvez-vous s'il vous plaît partager les paramètres que vous obtenez sur la soumission du formulaire? Merci

OriginalL'auteur pjmil | 2013-03-18