J'ai un objet imbriqué qui est un type d'utilisateur (disons Sub). J'avais supposé lors de la sauvegarde de Sub que les validations de l'utilisateur seraient également exécutées, mais apparemment pas? Comment exécuter toutes les validations dans l'utilisateur lors de la création de Sub?Objets imbriqués et validates_presence_of
1
A
Répondre
0
Les validations s'exécutent à partir du modèle hérité.
Voici un test qui montre que cela fonctionne.
test cas migration:
class CreateUser < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.column :name,:string
t.column :email, :string
t.timestamps
end
end
def self.down
drop_table :users
end
end
Modèles de test:
class User < ActiveRecord::Base
validates_presence_of :name
end
class Sub < User
validates_presence_of :email
end
Tests Cas:
Création d'un sous sans un nom ou par courriel, à l'exception échouait avec le nom, le courriel peut Ne pas être en blanc
>> b = Sub.create()
=> #<Sub id: nil, name: nil, email: nil, created_at: nil, updated_at: nil>
>> b.save
=> false
>> b.errors
=> #<ActiveRecord::Errors:0x2457458 @errors={"name"=>["can't be blank"], "email"=>["can't be blank"]}, @base=#<Sub id: nil, name: nil, email: nil, created_at: nil, updated_at: nil>>
Création d'un sous sans courrier électronique, enregistrer doit échouer avec le courrier électronique ne peut pas être vide.
>> b = Sub.create(:name=>'test')
=> #<Sub id: nil, name: "test", email: nil, created_at: nil, updated_at: nil>
>> b.save
=> false
>> b.errors
=> #<ActiveRecord::Errors:0x243865c @errors={"email"=>["can't be blank"]}, @base=#<Sub id: nil, name: "test", email: nil, created_at: nil, updated_at: nil>>
Créer un sous sans nom, enregistrer doit échouer avec le nom ne peut pas être vide.
>> b = Sub.create(:email=>'test')
=> #<Sub id: nil, name: nil, email: "test", created_at: nil, updated_at: nil>
>> b.save
=> false
>> b.errors
=> #<ActiveRecord::Errors:0x2429594 @errors={"name"=>["can't be blank"]}, @base=#<Sub id: nil, name: nil, email: "test", created_at: nil, updated_at: nil>>
La création d'un sous-répertoire avec le nom et l'adresse e-mail, enregistrer doit réussir.
>> b = Sub.create(:email=>'test',:name=>'test')
=> #<Sub id: 4, name: "test", email: "test", created_at: "2009-10-15 22:27:53", updated_at: "2009-10-15 22:27:53">
>> b.save
=> true
Questions connexes
- 1. Objets imbriqués avec YUI et Javascript
- 2. Comment créer des objets imbriqués en utilisant accept_nested_attributes_for
- 3. Accès aux objets imbriqués dans Json
- 4. Réflexion - obtention des propriétés des objets imbriqués
- 5. validates_associated et validates_presence_of ne fonctionnent pas comme prévu avec rspec?
- 6. Type.GetInterface et types imbriqués
- 7. éléments JQuery et imbriqués
- 8. créer des objets imbriqués dans javascript like groupby dans C#
- 9. validates_presence_of ne fonctionne pas correctement ... comment déboguer?
- 10. wxPython, panneaux imbriqués et accélérateurs
- 11. Modèles PHPTAL et imbriqués. Possible?
- 12. sous-modules imbriqués Git et dépendances
- 13. Types génériques imbriqués CLI et méthodes génériques
- 14. jquery jqModal Ajax et problèmes modaux imbriqués
- 15. PHP RecursiveIteratorIterator et les ensembles imbriqués
- 16. CSS, divs imbriqués et marges contre rembourrage
- 17. Référentiel, objets d'entité et objets de domaine
- 18. Est-ce que validates_presence_of est nécessaire si vous utilisez validates_length_of?
- 19. Les meilleures pratiques pour plusieurs modèles dans des rails de - imbriqués/non imbriqués, et validations
- 20. JRuby et objets Java
- 21. Cookies et objets
- 22. Objets AutoResetEvent et COM
- 23. objets et chaînes
- 24. Dépôt et objets immuables?
- 25. ASP.NET et les objets
- 26. fermetures et objets
- 27. Mise à jour des objets "imbriqués" avec JDO sur Google App Engine
- 28. Requête Linq, comment construire des objets imbriqués à partir d'une seule table
- 29. Comment utiliser l'arborescence wpf avec des objets imbriqués de différents types
- 30. Git imbriqués repos
Oups. Je voulais dire que j'ai Sub
Newy
Est-ce que les deux classes correspondent à la même table SQL ou à des tables différentes? Pouvez-vous poster un bref exemple/test? – rwilliams