je suit dans mon modèle org_person.rbRoR Nested Formulaire de validation
class OrgPerson < ActiveRecord::Base
has_and_belongs_to_many :TypRole
has_and_belongs_to_many :OrgContact
has_one :OrgCredential, dependent: :destroy
belongs_to :OrgCompany, foreign_key:"org_company_id"
belongs_to :TypPosition, foreign_key:"typ_position_id"
validates :first_name, presence: true
validates :last_name, presence: true
accepts_nested_attributes_for :OrgCredential
end
class OrgCredential < ActiveRecord::Base
belongs_to :OrgPerson, foreign_key:"org_person_id"
validates :user_name, presence: true
validates :password, length: { minimum: 6 }
before_create :create_remember_token
has_secure_password
end
et dans mon org_person_controller.rb
def new
@person = OrgPerson.new
end
et dans mon new.html.erb
<%= form_for(@person) do |f| %>
<%= render 'shared/error_messages' %>
<div class="col-md-12 ">
<%= f.text_field :first_name, placeholder: "First Name", :class => "form-control" %>
<%= f.text_field :last_name, placeholder: "Last Name", :class => "form-control" %>
<%= f.fields_for :org_credentials do |oc|%>
<%= oc.password_field :password, placeholder: "Password", :class => "form-control" %>
<%= oc.password_field :password_confirmation, placeholder: "Password Confirmation", :class => "form-control" %>
<% end %>
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
</div>
<% end %>
Dans partagé/error_messages
<% if @person.errors.any? %>
<div id="error_explanation" class="col-md-12">
<div class="alert alert-danger" role="alert">
The form contains <%= pluralize(@person.errors.count, "error") %>.
</div>
<ul>
<% @person.errors.full_messages.each do |msg| %>
<li>* <%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
Le problème est que tous les champs doivent être remplis pour passer. Cependant, lorsque je soumets un formulaire vide, je reçois seulement les erreurs "Le prénom ne peut pas être vide" et "Le nom de famille ne peut pas être vide". La validation du mot de passe ne s'affiche pas. Si quelqu'un a des idées, s'il vous plaît commenter. Cela me rend fou.
Merci! Vous monsieur/Madame êtes un dieu/déesse parmi les hommes. La chose qui m'a fait trébucher était les conventions de nommage que les rails suivent. Cela n'avait pas de sens pour moi auparavant, mais maintenant c'est le cas. –