Не позволяя Монгеру сериализоваться
Я новичок в Clojure и у меня проблемы с Монгером.
Я пытаюсь использовать Monger с другом. У меня есть это нс:
(ns cemerick.friend-demo.users
(:require [cemerick.friend.credentials :refer (hash-bcrypt)]))
(def users (atom {"friend" {:username "friend"
:password (hash-bcrypt "clojure")
:pin "1234" ;; only used by multi-factor
:roles #{::user}}
"friend-admin" {:username "friend-admin"
:password (hash-bcrypt "clojure")
:pin "1234" ;; only used by multi-factor
:roles #{::admin}}
(derive ::admin ::user)
Когда я пытаюсь добавить это в базу данных, используя Monger с
(mc/insert "users" {:username "friend",
:password "$2a$10$YGcqRFL67J5NDo7hfkVslerDYc1iIGBy0js871wxnXxOvdvJZ4Aua",
:pin "1234",
:roles #{:cemerick.friend-demo.users/user}})
Монгер сериализует #{:cemerick.friend-demo.users/user}
как "user"
Есть ли способ поставить это значение как есть или есть ли способ изменить "user"
в #{:cemerick.friend-demo.users/user}
?
1 ответ
Решение
Это, вероятно, возвращается "user"
поскольку name
Функция возвращает только имя.
(name :cemerick.friend-demo.users/user)
;=> "user"
Вы могли бы сойти с звонка str
на каждое ключевое слово перед вставкой их в базу данных.
(str :cemerick.friend-demo.users/user)
;=> ":cemerick.friend-demo.users/user"