Próbuję ustawić kilka zmiennych klasy do przechowywania ścieżki w aplikacji Rails (ale myślę, że to bardziej kwestia rubinowy)Jaki jest właściwy sposób dostępu do zmiennych klasowych w Rubim 1.9?
Zasadniczo moja klasa wygląda to
class Image < ActiveRecord::Base
@@path_to_folder = "app/assets"
@@images_folder = "upimages"
@@path_to_images = File.join(@@path_to_folder, @@images_folder)
end
Ale gdy próbuję Dostęp @@path_to_images
z mojego kontrolera wykonując Image.path_to_images
, dostaję NoMethodError
Kiedy próbuję z Image.class_eval(@@path_to_images)
, dostaję uninitialized class variable @@path_to_images in ImagesController
Rozglądałem się dookoła i wszystko widziałem mówi ci będzie działać, więc jestem bardzo pomylić o tym
Co więcej, próbowałem definiowanie prostych zajęcia z konsolą ruby jak tak
class Bidule
@@foo = "foo"
Bar = "bar"
end
Tak więc próbowałem, jak sądzę, wszystkie możliwe sposoby (poprzednie 2), aby uzyskać do nich dostęp, ale nie zawsze otrzymuję wyjątek podniesiony
dlaczego nie klasy stałe? potrzebujesz akcesorów ('cattr_accessor'), aby uzyskać dostęp do zmiennych klas od zewnątrz. http://apidock.com/rails/Class/cattr_accessor – tokland