at backyard

Color my life with the chaos of trouble.

Railsで複数テーブルのjsonデータを一度に返したい。

Railsのrender jsonを用いて、複数テーブルのjsonデータを返す方法。

調べてもぱっと出てこなかったので、一応メモとしておく。
(そもそも常識なのかもしれない)
そのため、あくまで個人的な備忘録の意味が強い。

最近RailsAPIを作っているのだが、"render json"で複数の関連テーブルを
1つのjsonとして返したかったので、そのやり方をメモ。

"posts"というテーブルに関連する"comments"と"images"データも一緒に返したいときは、
下記のようにrenderメソッドに記載する。
("@posts"にはpostsデータが入っているものとする。

respond_to do |f|
  f.json { render json: @posts.to_json(:include => [:comments, :images]) }
end


また、関連しないテーブルの情報を"render json"で一度に返すときは下記のようにした。

respond_to do |f|
  f.json { render json: [@posts.to_json(:include => [:comments, :images]), [user: @user.to_json]] }
end

これで希望する情報をjson形式で返せる。
のだけど、あまりこういうやり方が検索情報で出てこなかったので、
rails的にありなのかはいまいち自信が持てない。


※一応、このポストを行う前に同じケースを今一度探してみたが、
たぶんこのstack overflowの記事が該当する気がする。

stackoverflow.com

geohotでおなじみのComma.aiが$88でローンチした "Panda"について

日本では上野動物園のシンシンとその赤ちゃんパンダ🐼が話題になっている、ここ最近ですが、
先日geohotことGeorge Hotzの設立したスタートアップ"Comma.ai"のリポジトリを何気なく見に行ったら、
どうやら彼らが新しいプロダクトを作っていることが判明。
プロダクトの名前は"Panda"。
調べてみるとTechCrunchに記事があった。

techcrunch.com


どうやら、日本語版のTechCrunchにはこの記事が翻訳されて掲載されていないようだったので、
簡単にこのブログで紹介する。

なお、私はこれらの分野に関する知識について非常に疎いため、記載内容に誤りがある可能性がある。
その際はコメント欄やツイッターなどから間違いを指摘いただけるとありがたい。

なお、comma.aiとは何か?どういうプロダクトを作っているか?などについては割愛する。

※昨年の彼らの動向について知らない方々のために、下記の記事を参考として貼っておく。

thebridge.jp

bita.jp



Pandaについて

comma.ai


Panda自体は上記Comma.aiのトップページにも写っている、白と黒のドングルであり、
このようなドングルは例えば"Mojio"のような他のプロットフォームでも使用されているものらしい。

www.moj.io


Pandaは"Chffr"というアプリとペアにすると、車内のすべてのセンサーから録画を開始できるようで、
このChffrは基本的にクラウドに接続されたダッシュカメラであり、事故のビデオを録画したい人や、運転している様子を見たい人に便利なようだ。
iPhone版アプリのサムネイルを見てみたが、色々と情報を取得できそうで面白そうだった。


このChffrを使って得たデータを"Cabana"と呼ばれる、CAN(Controller Area Analysis)ツールで、取り込んで解釈するようだ。

CabanaのDemoはこちらから見れる↓
(アクセスペダルやステアリングコントロールなど、様々なデータが取れていることが分かる)

Comma Cabana



なお、Pandaは車のOBDII portに繋いで使うらしい。
(1996年以降の車は皆このportを持っているらしいが、車に疎い私にはよくわからない。)


chffr


medium.com


TechCrunchの記事によると、少なくとも1000台を販売すること望んでいるとのこと。
また、現在73人のComma.ai愛好家がテストをしているようだ。


以下はTechCrunchからの記事の引用である

“We’re trying to solve a really hard problem and basically there are only three real competitors:
Waymo, Tesla and us. We’re all coming at it from a different angle,” he said. “I can get a lot of smart people working on it for me if I open everything up like this.”

私たちはとても難しい問題を解決しようとしている。
そして基本的には、Waymo、Tesla、私たちという3つの本当の競争相手しかいない、とのこと。
WaymoやTeslaもクールな企業だし、今後のgeohotとComma.aiの動向からも、やはり目が離せなそうだ。

Rebuilt Caramel Ship website.

Caramel Shipのウェブサイトがリニューアルしました。

www.caramelship.net

Warning: unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React. という警告を直した際のメモ

react-railsでアプリを書いていると、下記のような"warning"に出会った。

Warning: unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.

調べてみると下記のissueにたどり着いた。

github.com

内容を見てみると、以前に修正されてはいるんだけど、バージョン上げたらまた出てきたよ!という内容のようだ。
なお、この時点での最新バージョンは下記のとおりとなる。
・react-rails (v2.2.0)
・webpacker gem (v2.0)

---------追記---------

そうそう、自身の環境を書き忘れていたので、下記に追記
Rails 5.0.2
・react-rails (1.11.0)

なお、webpackerは使用していない。

------追記終わり------

そして、以前あがっていたissueとは下記のものになるよう。

github.com

issue内にも書かれているとおり、下記のコードを"application.js"に追記したら、warningが出なくなった。

ReactRailsUJS.handleEvent('turbolinks:before-cache', function() {
  window.ReactRailsUJS.unmountComponents();
});


ちなみにreact-railsは今年リリースした"Sauna Map of Japan"にて使用中。
フロント側は元々jQueryで書いていたのだが、今回react-railsを使って、絶賛書き直し中。
自身の勉強を兼ねてもいる。今更な話ではあるが、react良いですね〜

react-rails

github.com


ちなみにSauna Map of Japanはまだベータ版。少しずつではあるが、使いやすいものにしていきます。

Sauna Map of Japan

Sauna Map of Japan


そういえば、久しぶりのブログ更新になりました。
あと、少し前にMediumにも近況載せました。
最近フロントエンド側でコード書いていますよ、という話。

medium.com

Sauna Map of Japan - β

先日Sauna Map of JapanをBetaにあげました。
どんな機能追加が行われたかについては当サイトのChange logを引用します。

Betaリリースに伴い、下記の機能が追加されています。
・日本地図からの検索が県単位で行えるようになりました
・ユーザがサウナ情報の登録を行えるようになりました(ログイン時のみ)
・ユーザのコメント履歴をユーザページに追加
・ユーザアカウント作成時のメールアドレス認証

Railsで作られているSauna Map of Japanでは認証周りに"sorcery"を使用しているのですが、
とても使いやすくて重宝しています。
今回実装したメールアドレス認証もsorceryのおかげ。

Sauna Map of Japan - α

5/3に"Sauna Map of Japan"というサウナの情報サイトをリリースしました。
まだα版(試作段階)なので、今後色々と更新・変更を加えていく予定です。が、ひとまず先に公開してしまいます。 (最近サウナにハマっている自分自身が、実際に使いながら改良を加えていきたいということもあり)

Sauna Map of Japan

改善点やバグなど見つかりましたら、ご連絡いただけると幸いです。

4月。春の雨。最近のことをちょろっと書く。

最近、ブログを更新する習慣がパタリとなくなってしまった。
プライベートで黙々とRailsアプリを書いているからかもしれない。
GWまでにはベータ版を公開したい。そして旅行とか行く際に、自分自身が存分に活用したい。
出先でいろいろなサウナに入ってみたいので。というわけで、サウナがキーワードのWebアプリ書いています。

ElixirConf 2017

www.elixirconf.jp

行ってきた。
下記は感想・メモなどをまとめてくれたりしている方々の記事、あとtogetter。
あとで読もうとしているので、自分へのメモとして貼っています。

in.fablic.co.jp

thinca.hatenablog.com

togetter.com

Elixirは最近触り始めたばかりだし、あまり周辺の知識もないのだが、色々と話が聞けて面白かった。
今回聞けた話を伝ってElixir周りやErlang周辺を色々と調べてみたい。
時間ができたら、自身でも取っていたメモをちゃんと整理して、ブログに書きたい <= 自分の頭の整理も兼ねて。

Phoenixでも簡単なアプリを書いてみたが、書いてみた第一印象は思っていた以上にRailsっぽい。
勿論、全然違う側面もあるのだけど、入り口というか、精神的な敷居としてはかなり低く、
想像していたよりは抵抗なく入っていける感じがとても印象良かった。

PAUL McCARTNEY THE LIFE

※下記はAmazonへのリンクとなっています。

最近知ったんだけど、"ポールが初めて認めたバイオグラフィー"という売り文句で、本が発売されたらしい。
気づいてすぐにKindleで購入して今読んでいるところ。
まだ読み始めたばかりだが、とても面白い。
ま、ポール好きなので、当然面白い。

春の雨

春の雨ってやつですね、この土日は。 春の雨といえば、大昔に作ったこの曲を思い出す。 Peruriと言います。

youtu.be