RailsでJavascript/CoffeeScriptをテストするときの決定版(にしたい)!Konachaの続き。 最初はブラウザリロードすればいいんだから、わざわざやらなくていいか、と思ったけど、当該環境がファントムとかポルターガイストとか中二病の諸症状を悪化させる瘴気にまみれていたため、やらざるを得なくなりました。 ところでヘッドレスとは、ただ単にGUIじゃないよ、というだけで、かっこつけてんじゃねーよとか最初は思ったけど冷静になってみると、別にそんなかっこよくもねーか、ということでとにかくそういうことで。 Rails前提の話です。 PhantomJSのインストール http://phantomjs.org/ PhantomJSが、そのヘッドレスブラウザの本体。 macだとhomebrewで入る。 brew install phantomjsウィンドウズのかたはゲイツとかにインスト
Programmer · Designer · Jiu-Jitsu Blue Belt · Recreational Pilot · Homebrewer The TodoMVC Project on Rails 4 July 20, 2013 Summary: I built the TodoMVC app according to specification using only Rails 4 and a hint of javascript. Check out the app here and the code here. Another Javascript MVC framework will be born on GitHub by the time you finish reading this sentence. When I started learning Rail
<%= line_chart @goals.map { |goal| {name: goal.name, data: goal.feats.group_by_week(:created_at).count} } %> or <%= line_chart Feat.group(:goal_id).group_by_week(:created_at).count %> Say Goodbye To Timeouts Make your pages load super fast and stop worrying about timeouts. Give each chart its own endpoint. <%= line_chart completed_tasks_charts_path %> And in your controller, pass the data as JSON.
最近Perlで仕事をしていて、cpanfileが無いプロジェクトで盛大にやらかしたtohaeです、こんにちは。 Perlでやらかした経験を生かし、Railsプロジェクトで使うクライアントサイドのJSもちゃんと管理しようとbowerを使うことにしました。 bower is 何? bowerってのはtwitterが作ったJSのパッケージマネージャです。最近紹介記事も多いので、詳しくはぐぐってください。 簡単に言うとJSをwgetする時代は終わったってことです!!! 今回はbowerの紹介ではなく、bowerをRailsで使う場合にはbower-railsを使うといいかもというお話をします。 bower-railsの下準備 まずはbowerをnpmで入れます。 $ npm install bower -g 次にGemfileにbower-railsを追加します。現時点ではバージョンを指定しないと
プロジェクトでjsのライブラリをどうやって管理するかみたいな話を隣の人としてて、 jquery-railsとかgem使う bundle updateで依存地獄なきにしもあらずなので、app/assets/javascript/vendor/とかに置く いやいやそれならvendor/assets/以下でしょ bowerって最近なうい感じがする ということで、bower使うと楽なんじゃないかみたいな結論にいたった。 https://github.com/twitter/bower Twitter社が作っているアセット管理ツールで、Twitter社が作ってるなら安心だろうみたいな感はあるけど、シンプルで使いやすい。 nodeで作られてるのでnpmでinstallする。 $ npm install -g bower bower installすると$HOMEに.bowerが作成されてそこにライブラ
よく理解できていなかったのでチュートリアル的に整理した。 まずはチュートリアル用のアプリを新規作成して、コントローラーを一つ作る。 rails new ajax_tutorial cd ajax_tutorial rails g controller sandbox index update_time Ajaxなフォームやリンクを作成する form_forやlink_toといったヘルパーのオプションに:remote => trueを加えるとボタンを押した時やリンクをクリックした時のリクエストが非同期リクエストになる。 app/views/sandbox/index.html.erb <h1>Sandbox#index</h1> <%= link_to('update time', {:action => 'update_time'}, :id => 'update-time-link',
6月末くらいからRailsを触り始め、ようやく慣れてきたと思ったらRails3が出て涙を流してるのがおれです。そんなわけで会社のプロジェクトをRails3で書きなおしてます。 Rails2時代 Rails2時代のAjaxのリクエストは、link_to_remoteを使えば問題ありませんでした。こんな感じ <%= link_to_remote "hoge", :url => hoge_path,:update => "hoge_id" %> こうするとhoge_pathっていうURLにAjaxで通信して、返ってきたレスポンスでid="hoge_id"な要素以下を更新してくれてました。 Rails3時代 Rails3ではlink_to_remoteは廃止され、代わりに:remote => trueを使うようになりました。あと:updateもなくなったみたいです。こんな感じです。 <%= lin
明示しなくてもviewでの出力をHTMLエスケープしてくれるので無警戒になってる html_escapeがシングルクォートをエスケープしないという認識がない viewでjavascriptを書くときに埋め込む値をescape_javascriptしてない このあたりの要素が組み合わさるとXSSがうまれやすいという話を書きます。わかってる人にとってはクソみたいな内容なので読む時間がもったいないかもしれません。たとえばjs.erbでこんなふうに書いてたとして var article_id = '<%= @article_id %>'; @article_idが信用できる値だという前提だと問題ないのですが、controllerで @article_id = params[:article][:id] 実はこんなことしてるだけであとは素通しっていう人も、もしかしたらいるかもしれません。要は外から渡
backbone.js + Rails3.1で作成したサイト「best vimrc」を題材にSonicGarden社内で勉強会を開催しました。ustreamされながら話すのは緊張しますねー。。 結果的に「クライアントサイドのコードを無理にMVCで書く理由が分からない。もっとシンプルで分かりやすいアーキテクチャがあるのでは?」という話に落ち着きましたが、サーバ側がRailsでフルAjaxなアプリを作る際には、backbone.js + Railsはgemが充実しているので良い選択肢なのかなという気がしています。 Getting Start backbone.js with Rails 次はknockout.js + Sinatraの組み合わせを試してみよう。 「best vimrc」のソースコードはgithubにあげてありますので、興味のある方はご覧下さい。
Ruby on Railsの生みの親、DHH(David Heinemeier Hansson)らが、モバイル向けのフレームワーク「Cinco」(シンコ)を間もなくオープンソースで公開する模様です(思わせぶりなブログエントリ)。以下は、37signalsのCincoを使った最初のモバイルアプリ「Basecamp Mobile」のデモ映像です。 Cinco自体はまだソースコードが公表されていません。準備が整うまでに数カ月かかるだろと言っています。Cincoはモバイル向けフレームワークで、「基本的には単一ページのJavaScriptアプリを扱うためのRailsだ」と説明されています。対応するプラットフォームは、 iPhone 3GS iPhone 4 iPad Motorola Droid X Motorola Droid 2 Samsung Galaxy S HTC Incredible H
One of the biggest changes on the frontend side of the upcoming Rails 3 version is the replacement of the Prototype JavaScript helpers in favor of Unobtrusive JavaScript (UJS). The implementation of Unobtrusive JavaScript, and the consequent removal of the old inline AJAX commands, offers at least three advantages: Less verbose, inline, behavioral code in the HTML document, with the result of much
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く