railsさて、今回はWeb開発に関する話!Railsで開発をしている最中なのですが、フロントエンドをいじくりたい場合、Javascriptを利用することは珍しくない。私もまたそんな一人だったのです・・・でも一つ困ったことが起こりました。Railsで使っているデータベースの中身のデータを使ってページに動きをつけたかったのですが、Railsのコントローラーでデータベースからデータを取得し変数に格納、これをどうやってjsに渡すか悩んでました。はじめはViewに一回埋め込んでた色々調べた結果、一番わかりやすく簡単なのが、データをViewに埋め込んで、display:noneで隠しておいて、値をjsで取得する方法。コードを書くと以下のようになりました。value="=@data"&amp;amp;gt;@dataにはrailsのコントローラーで取得したデータが入っています。これをjavascriptで取得すれば完了です。以下のコードはjQueryを使っています。これでjs内でRailsの変数を使うことができますね。data=$(".data").val();ただしこれはデータが増えるほど読み込みが遅くなってしまうし、結構無駄なことをしているらしい。js.erbを使うとスッキリしたerbという拡張子をつければ、Rubyのコードが使えるらしい。どおりでslimとかを使うときもslim.erbとかなってました。それをうまく利用すれば、一発でjsにrailsから変数を渡せます。以下のコードはhtmlをslimで書いています。%&gt;上記のコードを少し解説すると、まずhtmlにはjs.erbファイルを発火させるためのコードを書いています。slimでlink_toと書くとタグのリンクが生成されるので、このリンクをクリックされるとjs_write_pathのアクションが実行されることになります。js_writeのアクションが実行されると、@dataという変数に何かのデータを格納し、js_write.js.erbを実行するという流れになります。js_write.js.erbにはjsのコードにrubyのコードを混ぜられるため、変数が使えます。まとめrailsの変数をjsに渡す時こんな便利な方法があったなんて知りませんでした。これならajax通信にもなるため、初めのページ読み込みのスピードも改善できますね。ソースコード等は、以下の参考リンクのブログに今後掲載していく予定なので、そちらを定期的に確認してほしい。コメントをキャンセルメールアドレスが公開されることはありません。Themeisle.。