Articles of activerecord

Comment déterminer si un enregistrement vient d’être créé ou mis à jour dans after_save

Le #new_record? fonction détermine si un enregistrement a été enregistré. Mais c’est toujours faux dans le hook after_save . Y a-t-il un moyen de déterminer si l’enregistrement est un enregistrement nouvellement créé ou un ancien depuis la mise à jour? J’espère ne pas utiliser un autre rappel tel que before_create pour définir un indicateur dans […]

find () avec nil quand il n’y a pas d’enregistrements

Dans mon programme actuel de rails quand j’utilise quelque chose comme user = User.find(10) Lorsqu’il n’y a pas d’utilisateur avec ID = 10, j’aurai une exception comme: ActiveRecord::RecordNotFound: Couldn’t find User with ID=10 Puis-je obtenir un résultat nul au lieu de faire une exception alors quand je fais quelque chose comme: unless user = Challenge.find(10) […]

Avec Rails 4, Model.scoped est obsolète, mais Model.all ne peut pas le remplacer

À partir de Rails 4, Model.scoped est maintenant obsolète. DEPRECATION WARNING: Model.scoped is deprecated. Please use Model.all instead. Mais, il y a une différence entre Model.scoped et Model.all , à savoir que scoped.scoped renvoie une étendue, alors que all.all exécute la requête. Sur les rails 3: > Model.scoped.scoped.is_a?(ActiveRecord::Relation) => true Sur les rails 4: > […]

Comment convertir les résultats ActiveRecord en un tableau de hachages

J’ai un résultat ActiveRecord d’une opération de recherche: tasks_records = TaskStoreStatus.find( :all, :select => “task_id, store_name, store_region”, :conditions => [“task_status = ? and store_id = ?”, “f”, store_id] ) Maintenant, je veux convertir ces résultats en un tableau de hachages comme celui-ci: [0] -> { :task_d => 10, :store_name=> “Koramanagala”, :store_region=> “India” } [1] -> […]

Expressions régulières avec des validations dans RoR 4

Il y a le code suivant: class Product < ActiveRecord::Base validates :title, :description, :image_url, presence: true validates :price, numericality: {greater_than_or_equal_to: 0.01} validates :title, uniqueness: true validates :image_url, allow_blank: true, format: { with: %r{\.(gif|jpg|png)$}i, message: 'URL must point to GIT/JPG/PNG pictures' } end Cela fonctionne, mais quand j’essaie de le tester en utilisant “rake test”, j’attrape […]

Conversion d’un tableau d’objects en ActiveRecord :: Relation

J’ai un tableau d’objects, appelons-le un Indicator . Je veux exécuter les méthodes de classe Indicator (celles de la variété def self.subjects , les étendues, etc.) sur ce tableau. La seule façon dont je sais exécuter des méthodes de classe sur un groupe d’objects consiste à les faire devenir une relation ActiveRecord :: Relation. Je […]

Rails filtrant le tableau d’objects par valeur d’atsortingbut

Donc, j’effectue une requête sur la firebase database et j’ai un tableau complet d’objects: @attachments = Job.find(1).attachments Maintenant que j’ai un tableau d’objects, je ne veux pas effectuer une autre requête de firebase database, mais j’aimerais filtrer le tableau en fonction du type de fichier de l’object Attachment file_type pour avoir une liste de attachments […]

Comment Rails assure-t-il le suivi des migrations effectuées pour une firebase database?

Selon Rails doc: http://guides.rubyonrails.org/migrations.html “Active Record suit les migrations qui ont déjà été effectuées. Il vous suffit de mettre à jour votre source et de lancer rake db: migrate”. Comment ActiveRecord fait-il cela? Où Active Record stocke-t-il les données? Je pense que cela pourrait être stocké dans la firebase database elle-même? Dans une table quelque […]

Comment puis-je écraser une méthode getter dans un modèle ActiveRecord?

J’essaie d’écraser une méthode getter pour un modèle ActiveRecord. J’ai un atsortingbut appelé name dans la Category du modèle, et j’aimerais pouvoir faire quelque chose comme ceci: def name name_trans || name end Si l’atsortingbut name_trans n’est pas nul, renvoyez-le, sinon, retournez l’atsortingbut name . Comment pourrais-je faire ça? Cela devrait alors s’appeler normalement comme […]

Charge polymorphe

En utilisant Rails 3.2, quel est le problème avec ce code? @reviews = @user.reviews.includes(:user, :reviewable) .where(‘reviewable_type = ? AND reviewable.shop_type = ?’, ‘Shop’, ‘cafe’) Il soulève cette erreur: Impossible de charger avec impatience l’association polymorphe: révisable Si je supprime le reviewable.shop_type = ? condition, ça marche. Comment puis-je filtrer sur le type reviewable_type et reviewable.shop_type […]