L'enregistrement actif est un modèle qui combine la logique de domaine avec l'abstraction de stockage dans un seul objet. Utilisez cette balise pour les questions sur le modèle, [rails-activerecord] pour les questions sur le framework Rails ORM.
Si j'ai une portée avec un lambda et qu'il faut un argument, selon la valeur de l'argument, je sais peut-être qu'il n'y aura pas de correspondance, mais je veux toujours renvoyer une relation, pas un tableau vide: scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] …
J'ai déjà une solution qui fonctionne, mais j'aimerais vraiment savoir pourquoi cela ne fonctionne pas: ratings = Model.select(:rating).uniq ratings.each { |r| puts r.rating } Il sélectionne, mais n'imprime pas de valeurs uniques, il imprime toutes les valeurs, y compris les doublons. Et c'est dans la documentation: http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
J'essaie de créer une tâche de râteau personnalisée, mais il semble que je n'ai pas accès à mes modèles. Je pensais que c'était quelque chose implicitement inclus dans la tâche des rails. J'ai le code suivant dans lib / tasks / test.rake: namespace :test do task :new_task do puts Parent.all.inspect …
Mon modèle de produit contient des éléments Product.first => #<Product id: 10, name: "Blue jeans" > J'importe maintenant certains paramètres de produit d'un autre ensemble de données, mais il y a des incohérences dans l'orthographe des noms. Par exemple, dans l'autre jeu de données, Blue jeanspourrait être orthographié Blue Jeans. …
Cela fait suite à cette question préalable, à laquelle il a été répondu. J'ai découvert que je pouvais supprimer une jointure de cette requête, alors maintenant la requête de travail est start_cards = DeckCard.find :all, :joins => [:card], :conditions => ["deck_cards.deck_id = ? and cards.start_card = ?", @game.deck.id, true] Cela …
Il existe un attribut dynamique pratique dans l'enregistrement actif appelé find_or_create_by: Model.find_or_create_by_<attribute>(:<attribute> => "") Mais que faire si j'ai besoin de trouver_ou_créer par plus d'un attribut? Disons que j'ai un modèle pour gérer une relation M: M entre le groupe et le membre appelé GroupMember. Je pourrais avoir de nombreuses …
Existe-t-il un moyen d'obtenir une collection de tous les modèles de votre application Rails? Fondamentalement, puis-je faire des choses comme: - Models.each do |model| puts model.class.name end
Je recherche la meilleure approche pour supprimer des enregistrements d'une table. Par exemple, j'ai un utilisateur dont l'ID utilisateur figure sur de nombreuses tables. Je veux supprimer cet utilisateur et chaque enregistrement qui a son ID dans toutes les tables. u = User.find_by_name('JohnBoy') u.usage_indexes.destroy_all u.sources.destroy_all u.user_stats.destroy_all u.delete Cela fonctionne et …
Existe-t-il un moyen de valider qu'un enregistrement réel est unique et pas seulement une colonne? Par exemple, un modèle / une table d'amitié ne devrait pas pouvoir avoir plusieurs enregistrements identiques comme: user_id: 10 | friend_id: 20 user_id: 10 | friend_id: 20
Si je crée une nouvelle migration Rails 3 avec (par exemple) rails g migration tester title:tester user:references , tout fonctionne bien ... mais si j'ajoute une colonne avec quelque chose du genre: rails g migration add_user_to_tester user:references le champ de référence n'est pas reconnu. En bref, la question est: comment …
Un exemple de ce dont je parle: class Person < ActiveRecord::Base def name=(name) super(name.capitalize) end def name super().downcase # not sure why you'd do this; this is just an example end end Cela semble fonctionner, mais je viens de lire la section sur le remplacement des méthodes d'attributs dans la …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.