Ich benutze den facebooker gem, der eine Variable namens facebook_session im Controller-Bereich erstellt (was bedeutet, wenn ich facebook_session.user.name im Userscontroller-Bereich aufruft). Wenn ich jedoch die Funktion full_name (in meinem Modell) neu schreibe, kann ich nicht auf die Variable facebook_session zugreifen.Zugriff auf eine in einem Controller deklarierte Variable aus einem Modell
0
A
Antwort
1
Sie müssen den Wert an einem bestimmten Punkt in Ihr Modell eingeben und dann speichern, wenn Sie regelmäßig darauf zugreifen müssen.
Modelle dürfen keine Daten von Controllern abrufen - dies würde in der Konsolenansicht, beim Komponententest und in einigen anderen Situationen Probleme verursachen.
Die einfachste Antwort ist so etwas wie diese:
class User
attr_accessor :facebook_name
before_create :update_full_name
def calculated_full_name
facebook_name || "not sure"
end
def update_full_name
full_name ||= calculated_full_name
end
end
class UsersController
def create
@user = User.new params[:user]
@user.facebook_name = facebook_session.user.name
@user.save
end
end
Verwandte Themen
- 1. TCL Variable Umfang: eine Variable in einem Befehl deklarierte Zugriff
- 2. Zugriff auf Ruby-Variable (von Modell oder Controller) in SASS
- 3. Zugriff auf eine Variable mit Werten aus einem String varriable
- 4. Zugriff auf Magnolia TemplatingFunktionen in einem Controller
- 5. Übergang von einem Controller zu einem Modell
- 6. Zugriff auf eine Instanzmethode in einem anderen View-Controller
- 7. Wohin gehen in einem IIFE deklarierte Variablen?
- 8. ASP.NET MVC - Zugriff auf eine Controller-Eigenschaft in einem ActionFilter
- 9. codeIgniter -Wie Zugriff auf eine Textdatei von einem Modell
- 10. Zugriff auf Request.Cookies von einem Controller-Konstruktor
- 11. Zugriff auf eine Variable in einem Bash-Skript
- 12. Zugriff auf eine Variable in einem anderen Programm (C++)
- 13. Zugriff auf eine Funktion Variable in einem Objekt von außen
- 14. Zugriff auf eine Klassenmethode aus einem Modell in der Rakefile/Ruby on Rails 3
- 15. Zugriff auf eine in einer anonymen Funktion deklarierte Funktion?
- 16. Repräsentieren ng-Modell in einem Controller
- 17. Wie würde ich mit einem View-Controller auf eine Variable von einem anderen View-Controller zugreifen?
- 18. Zugriff auf eine Controller-Daten von einem anderen
- 19. PHP Zugriff auf nicht deklarierte statische Eigenschaft
- 20. CakePHP3: mit einem anderen Modell in einem Controller
- 21. Wiederverwenden eine deklarierte Variable in Postgres Funktion
- 22. Zugriff auf Controller-Variable von CoffeeScript
- 23. Zugriff Angular-Controller in einem Skript
- 24. Zugriff auf normalisierte Formulardaten in einem Controller in Symfny 2
- 25. Eine Variable vom Controller zu einem Partial in Zend übergeben
- 26. Zugriff auf Domäneneigenschaften von einem Controller in Grails?
- 27. Mehrere Controller mit einem einzigen Modell
- 28. Zugriff auf Controller über URL in einem MVC
- 29. MVC - verweist auf ein Modell aus einem anderen Modell
- 30. Array-Variable in einem Glut-Controller
Vielen Dank für Ihre Antwort Austin, in dieser Situation würde dieser Code funktionieren, wenn Sie so etwas wie dies haben: x = User.find (1) x .full_name Ich bin mir nicht sicher, ob die create-Methode jemals so genannt wird. Dank –
Ich habe meinen Code geklärt, damit Sie wissen, wie Sie den facebook_name in der Datenbank speichern. Jetzt sollte es funktionieren, um es zu erhalten, wie Sie vorschlagen. – austinfromboston