スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Mongoidでcollectionをdropする

MySQLでいうtruncateの方法を探していたんだが、

Mongoid.master.collections.
select { |c| c.name != 'system.indexes' }.each(&:drop)
end


はRSpec.configureの中でしか使えないようで、とりあえず

Hoge.with(collection: "fuga_collection").collection.drop



いいのかこれで・・・

スポンサーサイト

ActiveRecord使ってMySQLの日付関数呼び出す時の注意

AWS+RDSでRailsを使ったりしてると、RDSのタイムゾーンがUTCから変更できない関係で、けっこう時間の扱いに悩みます。

大抵の場合、application.rbに

config.time_zone = 'Tokyo'


とかやってお茶を濁すわけですが。

config.time_zoneはあくまでアプリケーション側の時間の扱いなので、DBのタイムゾーンを帰るわけではありません。

なので、date関数とか使うとUTC扱いになって困っちゃったりするわけです。

そういう場合はCONVERT_TZで無理くりJSTにします。

User.where("DATE(CONVERT_TZ(regist_day,\"+00:00\",\"+09:00\"))

RailsでAPNSするときの注意点

ライブラリはこちらを使わせてもらう

jpoz / APNS


railsからapnsを使うためにgemfileに追記する


gem "apns"


bundle install


Apple Developer Centerからダウンロードした開発用.p12証明書を鍵とセットの証明書に変換

openssl pkcs12 -in 証明書.p12 -out apns.pem -nodes


証明書をRailsのプロジェクトディレクトリににアップロード

あとはアップロードしたファイルを指定して、指定のデバイスIDに送ればOK!

APNS.pem = Rails.root.join("cert","apns.pem")
APNS.send_notification(アプリから登録したデバイスID, "Hello iPhone!")




なはずだったのだが・・・・

なぜか英語の通知はできるのに日本語だと通知が行かない。



とりあえずtcpdump port 2195すると、正常に送れる時と送れない時で微妙に応答がちがう。。。

半日ぐらい悩んだ挙句、こちらにたどり着いた

APNS.pem = Rails.root.join("cert","apns.pem")
alert = String.new("はろーあいふぉん")
alert.force_encoding("ascii-8bit") if RUBY_VERSION.to_f >= 1.9
APNS.send_notification(アプリから登録したデバイスID, alert)



これで日本語もちゃんとpushできました。


参考にさせてもらったページ
https://github.com/jpoz/APNS
http://d.hatena.ne.jp/arcright/20120620/1340428736
http://atotok.net/note/rails/?incompatible+character+encodings%3A+ASCII-8BIT+and+U

rvmなRailsのWebrickを80番ポートで起動する

rvmsudo rails server -p 80


だよ

Rails3.2+Backbone.jsでモデルの永続化ができない場合

Rails3.2+Backbone.jsの組み合わせで

this.model.save({hogehoge:...})


とやっても何故か永続化できない。

webrickのログを見ると

Started OPTIONS "/test" for 192.168.26.120 at 2012-10-11 18:24:35 +0900


とかなってて、正しくHTTPメソッドがセットされてない。

色々調べた結果、自分の環境ではAJAX通信時に

contentType="application/json"


をセットしてもRailsでJSONリクエストとして処理してくれないらしい。

とりあえず

Backbone.emulateJSON = true;


にして、test.json宛てのリクエストに変更して逃げたけど、そもそも何故jsonヘッダを見てくれないんだぜ。

このカテゴリーに該当する記事はありません。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。