Jestem początkujący we frameworku Grails 2.0 i staram się postępować zgodnie z tym samouczkiem http://grails.org/Simple +Awatar+przesyłający. Zaimplementowałem ten kod, ale otrzymuję błąd w UserController.groovy w tym wierszu „def user = User.current(session)” jako „Brak takiej właściwości: User for class: grailtwitter.PersonController” Zakładam, że ta linia przyjmuje użytkownika obecna sesja. Szukam wyjaśnienia jak to działa ?
2 odpowiedzi
Ten kod jest niekompletny. Kontroler zakłada, że masz sposób na identyfikację aktualnie zalogowanego użytkownika. Niejawnie wiersz def user = User.current(session)
zakłada, że zdefiniowałeś metodę current()
w samej klasie użytkownika, która przyjmuje sesję i prawdopodobnie używa jakiegoś pola, które w nim ustawiłeś, aby pobrać użytkownika. To byłoby trochę głupie.
Typowym sposobem na zrobienie tego byłoby zbudowanie własnego mechanizmu uwierzytelniania. Pamiętaj, że jest to naiwna praktyka i o wiele lepiej używasz Wiosny Security Core, chyba że chcesz pozostawić aplikację otwartą ze względu na dziury w zabezpieczeniach. Ale dla praktyki coś takiego:
def login = {
//if you're stupid enough to store your passwords in plain text and not sanitize user inputs, you deserve to be hacked
def user = User.findByPassword(params.password)
if(user){
session.user = user
}
}
Możesz wtedy zastąpić obraźliwą linię w samouczku (--def user = User.current(session)
--) na
def user = session.user ?: new User(userid:"I'm a little teapot")
Zanim przejdziesz znacznie dalej, prawdopodobnie zechcesz zapoznać się z tym bezpłatnym e-bookiem na temat Grails zanim zajdziesz znacznie dalej. Gorąco polecam także Grails w akcji.
Kiedy natknąłem się na to w przeszłości, dzieje się tak dlatego, że nie zaimportowałem klasy, a Grails/Groovy myśli, że próbuję uzyskać dostęp do zmiennej o nazwie User, a nie do metody w klasie.
Podobne pytania
Nowe pytania
grails
Grails to pełnoprawny framework aplikacji internetowych typu Open Source, który wykorzystuje język programowania Groovy (który z kolei jest oparty na wirtualnej maszynie Java (JVM) i Javie. Struktura jest zorientowana na tworzenie aplikacji o wysokiej produktywności, zgodnie z „kodowaniem według konwencji ”i wykorzystuje popularne technologie Java, takie jak Hibernate i Spring.