いろんなオプション機能を選択できるオプション選択画面ほしい
- 実は隠し機能いっぱいある
- 好みの問題で動作を変えたい部分がある (最後の24分から始まるなど)
というような問題を解決したいので作りたい
ユーザー毎の値の持つ場所は?
- DB + Ajaxでユーザー設定取得 <
- dbの場合は、カラムを特に決めず jsonを1カラムに入れるような実装にしたい
- 複数ブラウザ間で共有したいのでコチラ
- LocalStrage(もしくはCookie)
どちらにせよ
user.config.hogemoge_option // => true or false みたいな形で取れると良い
やりたいやりたい
@fukajun 「 DB + Ajaxでユーザー設定取得」こっちで!
@pandeiro245 その心は?
@fukajun 同一ユーザが複数のデバイスから利用する可能性があるかなと思いまして!
同一PCでも違うブラウザとかもありそう
@pandeiro245 ごもっともでです。
オプションの種類として、正式な機能と実験的な機能のLABみたいな2つの種類を設けたい...
@fukajun いいですね。Gmailの送信キャセル機能が最初LAB機能として後で本機能になった的な。
<書きかけ>
設定値
true, false の場合は、よいけど、trueのときに設定値が必要な場合はどのように持つのが良いか? まずは、 true or falseだけでも良いのかもしれない
{hogemoge: true, mogemoge: 100 }
mysql のバージョンっていくつですか?
@fukajun 5.5.42 です!
ちなみに僕のローカルは 5.6.23でした
なるほど、5.7から JSON型がサポートされたので使ってみたかったんですが、残念
@fukajun やりましょう!それでこその個人サービス!
といってもユーザー設定をどういう形式で保存するのかが一番よいのかを検討していて
- JSON (railsのシリアライズ) <= アンチパターン
- JSON (mysqlの型を利用) <= アンチパターン回避策
- ちゃんと正規化
みたいな感じなんですね。なのでもう少し考えてみます。
【いいんだけど一応共有】AWSのRDSはMySQL5.7未対応だそうです
いやでもJSON型使ってみたいー
そうなんですねぃ、こういうの見つけました。 https://github.com/ledermann/rails-settings まさにユーザーの設定をもつためのgem
結局これは、serialize を使用している....
@fukajun ActiveRecord::Storeじゃダメなの?と思ったのですがそれもserialize(アンチパターン)ってことですよねぇ
http://qiita.com/jnchito/items/68e91e9bf46f960a79e4
ですです。なので良い方向でなんか gem を作ろうかとおもってましたがわりとこれで事足りるんでないかと思って....
https://github.com/cjbottaro/has_easy
これ試してみてよければ、これでやってしまうか自分で作るかですね。(作りたい欲求はある)
@fukajun あーそれかいっそのことmysqlやめてmongodbにします??
mongodbに憧れるのわかる。たしかにそんなに整合性を気にするようなものないですし 使ってもいいかもしれないですけどね。(経験ないです) あくまで、RDBでいくとこまで行きたい派ではあります。
@fukajun
http://qiita.com/jnchito/items/68e91e9bf46f960a79e4
これ、さらっと読んだんだけど、まずはActiveRecord::Storeで作ってみて、安定したらカラム追加する運用じゃだめなんですかねぇ?
ユーザ設定なので横串で検索することもないし、集計とかでやりたければユーザ数数百人とか数千人とかなら集計に旅に全データメモリに入れても動く気がする。