J’ai un hash foo = {‘bar’=>’baz’} Je voudrais appeler foo.bar #=> ‘baz’ Ma motivation est de réécrire une requête activerecord dans une requête SQL brute (en utilisant le modèle # find_by_sql). Cela retourne un hachage avec les valeurs de la clause SELECT en tant que clés. Cependant, mon code existant repose sur la notation point […]
En testant une paire getter / setter dans un modèle de rails, j’ai trouvé un bon exemple de comportement que j’ai toujours trouvé étrange et incohérent. Dans cet exemple, je traite de la class Folder < ActiveRecord::Base . Folder belongs_to :parent, :class_name => ‘Folder’ Sur la méthode getter, si j’utilise: def parent_name parent.name end …ou… […]
Dans mon modèle project.rb, j’essaie de créer une étendue avec une variable dynamic: scope :instanceprojects, lambda { where(“projects.instance_id = ?”, current_user.instance_id) } Je reçois l’erreur suivante: undefined local variable or method `current_user’ for # Où dans le contrôleur je peux accéder à current_user.instance_id … Y a-t-il une raison pour laquelle le modèle ne peut pas […]
Je me demandais dans quel ordre les callbacks et les validations sont appelés lorsqu’un object ActiveRecord est créé. Disons que j’ai des validations et des rappels personnalisés comme ceux-ci: validates :reference_code, :if => :reference_code, :on => :create before_create :assign_reference lequel courra en premier? Le rappel doit avoir lieu en premier ou la validation peut échouer.
Apparemment dépendant => détruire est ignoré lorsque vous utilisez également l’option: through. Donc j’ai ça … class Comment :destroy has_many :users, :through => :comment_users … end … mais la suppression d’un commentaire n’entraîne pas la suppression des enregistrements comment_user associés. Quelle est l’approche recommandée pour les suppressions en cascade lorsque vous utilisez: through? Merci
J’ai trouvé quelques questions sur SO concernant les associations Rails qui sont un peu comme ma question, mais pour la vie, je n’arrive pas à comprendre comment utiliser belongs_to plusieurs modèles. Voici la structure du tableau que je compte avoir: User id Post id user_id #foreign key; a post belongs to a User aka “Who […]
Rails 3.2.1 Existe-t-il un moyen (sans squeel ) d’utiliser la syntaxe de hachage d’ActiveRecord pour construire un opérateur != ? Quelque chose comme Product.where(id: !params[:id]) Génère des SELECT products.* FROM products WHERE id != 5 Rechercher le contraire de Product.where(id: params[:id]) METTRE À JOUR Dans les rails 4, il n’y a not opérateur. Product.where.not(id: params[:id])
Le validateur d’unicité d’ActiveRecord a des options pour ignorer la validation si la valeur est nulle ou vide. Même si je mets les deux parameters sur true (comportement par défaut), je peux créer un enregistrement avec nil et vide avant que la validation ne soit effectuée. J’utilise la firebase database SQlite3 par défaut sqlite3-ruby (1.2.5). […]
Pour les colonnes normales, vous pouvez y accéder via la méthode de la classe columns . Cependant, les associations peuvent être nommées différemment si l’option foreign_key est définie dans la méthode de relation. Par exemple, donné class Post has_many :comments, :foreign_key => :message_id # this is a consortingved example end Si je faisais Post.column_names je […]
Je suis nouveau dans la nouvelle interface de requête d’ActiveRecord, alors je continue à comprendre. J’espérais que quelqu’un pourrait expliquer la différence entre l’utilisation d’une scope dans un modèle ActiveRecord et l’utilisation d’une méthode de classe (ie self.some_method ) D’après ce que je peux rassembler, une scope doit toujours renvoyer une relation, alors qu’une méthode […]