RailsアプリにReactを導入するには、react-railsを使用することができます。
react-railsは、Railsで実装されたerbなどのビューの中でReactコンポーネントを扱えるようにするgemです。
Reactでは、マークアップとCss、Javascriptを「コンポーネント」と呼ばれるアプリのための再利用可能な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側に渡すことができました。
モデルのアソシエーションではなく、メソッドを用いてデータを取得しReact側に渡したいときには、mergeは役に立ちます。