Ruby/Rails - Comment Créer une Classe et d'y Accéder à partir du Contrôleur de
J'ai essayé d'utiliser quelques joyaux différents pour l'affichage de googlemaps dans rails 3 et ont eu plusieurs problèmes.
Heureusement, j'ai trouvé ce https://github.com/YouthTree/bhm-google-maps qui est une application d'assistance et il semble fonctionner pour les autres.
Je l'ai installé correctement, mais dans le fichier readme https://github.com/YouthTree/bhm-google-maps/blob/master/README.md il mentionne la création d'une classe de l'objet à afficher dans la vue.
L'exemple qu'ils ont donné était
class Location
attr_accessor :address, :lat, :lng
def initialize(address, lat, lng)
@address = address
@lat = lat
@lng = lng
end
def to_s; address.to_s; end
end
Puis en exécutant
<%= draw_map_of Location.new("My House", 12.345, 56.789) %>
dans la vue.
Il semble assez simple, mais je n'ai pas éprouvé le besoin de créer une classe avant dans les rails alors j'ai quelques questions.
Dois-je créer un emplacement.rb fichier et placez le code ci-dessus, mais où dois-je placer le fichier? (modèle de dossier de, dossier de l'application????)
Est-il un moyen pour moi de créer cette classe dans mon contrôleur?
Idéalement, je voudrais manipuler les lat/lng valeurs que les variables et afficher une carte dynamique.
OriginalL'auteur ChrisWesAllen | 2011-03-02
Vous devez vous connecter pour publier un commentaire.
Vous devriez mettre
location.rb
où vous vous sentez le plus logique. Ayant àapp/models/location.rb
permettra de s'assurer que c'est automatiquement requise lorsque votre application démarre, mais certaines personnes pensent que les classes dansapp/models
sont soutenus par ActiveRecord.Vous pouvez aussi la mettre sous
lib/
si vous préférez.De les rendre disponibles sur l'app, vous pouvez inclure exiger la déclaration de projet d'initialiseurs de l'intérieur de votre dossier config:
Pour la création à l'intérieur de votre Contrôleur - certainement! C'est juste une autre instance d'une classe:
Et alors à votre avis:
N'oubliez pas en – dessous des Rails est toute la puissance et la flexibilité de la pure Ruby, prêt à être utilisé. Vous n'êtes pas limité uniquement à ce que les Rails vous donne.
require 'location'
si vous avez le fichierlib/location.rb
présent.syntaxe alternative:
Rails.root.join('lib', 'location')
.to_sOriginalL'auteur