Je voulais vraiment essayer de comprendre comment utiliser une catégorie ou un type de hachage ou de tableaux dans les modèles, mais j'ai l'impression d'être un peu confus. Voici ce que j'essaie de faire et j'apprécierais toute aide. J'ai un modèle d'alerte dans mon application et j'avais à l'origine une table Alert_Type mais je voulais m'en débarrasser parce qu'il y avait plus de requêtes que j'en avais besoin pour vraiment seulement un type d'alerte élevé, moyen, bas, donc j'étais va les déplacer dans le modèleRuby on Rails - Modèle de hachage pour la balise Select
SEVERITY = { "High" => :high,
"Medium" => :medium,
"Low" => :low }
<%= select :alert, :severity, Alert::SEVERITY, {:prompt => "Select one"} %>
Je me sens comme cela est incorrect parce que quand je tire la valeur de base de données, il est élevé, faible, moyenne, mais ont besoin pour obtenir le texte de cette valeur. Quand j'ai fait ceci,
SEVERITY = { :high => "High"
:medium => "Medium",
:low => "Low" }
J'ai eu des problèmes avec les listes déroulantes. J'essaie de comprendre l'approche des meilleures pratiques afin que lorsque je pourrais avoir besoin de traductions, cela fonctionnerait correctement. Dois-je faire un hachage ou juste un tableau. Merci beaucoup!
Merci pour la suggestion, je pense que cela fait beaucoup de sens. Je l'ai mis en œuvre comme cela dans le code avant que vous avez répondu – bokor
essayé ce premier et avait ceci dans la recherche dans la vue Alert :: SEVERITY [alert.severity.to_sym] – bokor
Je ne vous sous-entends pas, désolé :(. besoin d'accéder à Alert :: SEVERITY à partir de la vue? Utilisez cattr_reader ou créez une méthode de classe dans le modèle: def self.severity; Alert :: SEVERITY; end Et vous pouvez invoquer dans la vue Alert.severity – pablorc