SecureSocial の Identity 特性を拡張する User クラスを使用して、Slick に Users テーブルを実装しています。オプションの not-storable-in-database タイプ オブジェクトからオプションのプリミティブ データベース タイプへの変換に問題があります。
参照するには: Slick docs、 SecureSocial docs (SecureSocial の API ドキュメントを生成するには、Githubからプルし、「module-code」ディレクトリに移動してから実行しますplay doc
。次に、module-code/target/api フォルダーを調べて、上 index.html)
私が持っているもの
User
ケース クラスで次のパラメーターを取得します。
oAuth1Info: Option[securesocial.core.OAuth1Info]
Scaladoc の OAuth1Info の新しいインスタンス コンストラクターは次のようになります。
new OAuth1Info(token: String, secret: String)
今私の*
方法で(ここで説明されているように):
def * = stuffs ~ oAuth1InfoToken ~ oAuth1InfoToken ~ moreStuff <>
( // the following is the apply method
{ t => User(stuffs,
Some(OAuth1Info( (t._9).getOrElse(""), (t._10).getOrElse("")) ),
moreStuffs)
}, // the following is the unapply method
{
(r: User) => Some( (r.stuffs,
(r.oAuth1Info).getOrElse(None).token , // ERROR
(r.oAuth1Info).getOrElse(None).secret , // ERROR
r.moreStuffs) )
}
私がやろうとしていること
提供されていないNone
場合はデータベースに挿入し、oAuth1Info
Option[securesocial.core.OAuth1Info] = None
それ以外の場合は、OAuth1Info
オブジェクトを取得してトークンとシークレットを取得し、データベースのそれぞれの列に保存します。
このマッピングされたプロジェクションが 500 文字以上の行であることに加えて、何らかの操作を行う必要がありますか?
oAuth1Info match {
case None: None
case _: oAuth1Info.token
}
? 単一行のパターンマッチャーは可能ですか? 私はこの時点で自分のコードにとても迷っています...
助けてくれてありがとう
これまでの私の完全な実装を見たい場合は...
Scala + Slick + SecureSocial = 残念なことに tl;dr コード
このコードがテキストの壁であることはわかっています。複数行の Scala コードが存在する場合、ここで素晴らしいでしょうか? ペーストビン