leaning diary Rails

【Learning Diary28】react-railsとjson、merge

 

【Learning Diary28】react-railsとjson、merge

 

RailsアプリにReactを導入するには、react-railsを使用することができます。

 

react-railsは、Railsで実装されたerbなどのビューの中でReactコンポーネントを扱えるようにするgemです。

 

Reactでは、マークアップとCss、Javascriptを「コンポーネント」と呼ばれるアプリのための再利用可能なUI要素にまとめることができます。

 

参照:React コンポーネント:UI の構成部品

 

react-railsを導入すると、ビューでreact_componentヘルパーを使用し、Reactコンポーネントをレンダリングすることができるようになります。

 

Railsによってレンダリングされたビューにjsonデータを埋め込み、サーバー側でJSを実行して初期表示を行う流れになります。

 

react_componentはjson形式のデータを受け取ることができ、そのデータはReactコンポーネント内でJavaScriptオブジェクトとして解釈できます。

 

モデルをハッシュ形式のjsonデータに変換するには、as_jsonメソッドを使うことができます。

 

as_jsonメソッドでは、オプション :methods でメソッドの呼び出し結果を含めることができます。

 

参照:Railsガイド モデルをハッシュ形式のJSONに変換

 

なお、属性を指定した上で引数を渡す必要のあるメソッドを含めるといった場合は、うまく引数を渡せないケースがあります。

 

今日引数を渡すことができず困ったのですが、mergeメソッドをつかうことで解決しました。

 

mergeはレシーバと引数のハッシュの内容を順番に統合した結果を返却します。

 

今日の場合は、.mergeの後の引数に希望していたメソッドを引数付きで渡すことで希望するデータをreact側に渡すことができました。

 

参照: Railsドキュメント 他の条件とマージ

 

参照:instance method Hash#merge

 

モデルのアソシエーションではなく、メソッドを用いてデータを取得しReact側に渡したいときには、mergeは役に立ちます。

 

-leaning diary, Rails