Le blog de la CT2C

Conseils pour les débutants en Rails

Par Arpsara , publié le 22 Mars 2017

Apprenez à utiliser les méthodes de recherche rails

On a déjà vu des méthodes de recherche rédigées en full SQL alors que ce n'était pas forcément nécessaire, ou encore ce genre de code:

def establishment_rates
establishment_rates = []
establishments.each do |establishment|
establishment_rates << establishment if establishment.establishment_rate.nil?
end
return establishment_rates
end
... qui peut tout simplement être remplacé par ceci:

def establishment_rates
self.establishments.where(establishment_rate: nil)
end

Ce qui est quand même plus simple et plus compréhensible, non?

Évitez également d'écraser les méthodes déjà existantes pour les associations. Si User has_many :notes, ne créez pas de méthode dans le model User qui s'appelle notes...

Utilisez les migrations correctement

Un des avantages des migrations, c'est de pouvoir faire un rollback si besoin. Ce genre de migration est à éviter, car le rollback n'est pas possible.
class AddPermalinkToGenre < ActiveRecord::Migration
def change
execute "update genres set permalink = name_en"
end
end

Si vous souhaitez créer des données dès la première migration, pensez au fichier seeds.rb, qui s'execute lors d'un rake db:setup. :)

Ne réinventez pas la roue


... car elle existe déjà! Je parle notamment des systèmes d'authentification, qui est l'erreur classique du débutant par excellence. En Rails, Devise fait très bien le travail, plusieurs développeurs expérimentés sont passés par là et vous éviteront des erreurs de sécurité basiques, comme stocker le mot de passe en clair dans la base de données...

Ne dupliquez pas votre code


Ayez toujours en tête que la philosophie de rails est "Don't Repeat Yourself" (DRY). Autrement dit, dès que vous commencez un copier-coller de code, cherchez une alternative en créant une méthode avec des variables, à créer un module... Vous pouvez également utiliser les "concern" (méthodes pouvant être partagées par différents model), ainsi que profiter de l'héritage des models. Le model parent est commun aux models enfants, et il est possible d'écraser la méthode du model parent si besoin.

Pour faire des models enfants, il suffit d'ajouter une colonne string nommée "type" à votre model parent (qui contiendra la classe de votre model enfant), ainsi que les attributs supplémentaires de vos enfants.

Le model enfant est simplement hérité grâce au <, et ChildModel aura tous les attributs de ParentModel.

class ChildModel < ParentModel

end


Testez votre application


Apprenez à le faire pour tout type de projet, qu'il soit "simple" (raison de plus pour se faire la main sur les tests!) ou compliqué (et où là ça devient nécessaire). Des projets en apparence simples, qui à force de ne pas être testés, peuvent devenir très compliqués à maintenir: rails évolue, les gems évoluent, le projet et donc le code aussi... Si les tests vous font peur, que vous pensez que c'est une perte de temps, jetez un oeil sur notre article à propos des tests unitaires.

Voilà pour ce que nous avons pu voir en reprenant des projets. Et vous, quels conseils donneriez-vous aux codeurs rails débutants?


Index -- --

  • Aucun commentaire - Soyez le premier !

Insérez votre commentaire
  1. Min: 50 caractères, Max: 800. Actuellement: 0 caractères

  2. ne pas remplir