watch on iTunes follow on Twitter follow on Facebook subscribe to RSS feed
プロジェクトで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でWEB APIサーバを作るときのアーキテクチャをどうするか考える RESTful APIとWebサイトを1つのアプリケーションで作る で、この時はAndroidアプリしかAPIを使うクライアントはいなかったんだけど、等々HTMLから使うときが来ました! この時のために、いろいろ考えて自分なりのRESTfulなAPIを作ってきたつもりだった。 で、ここまでの積み重ねを活かせると思い、backbone.jsも採用したのでなんかもう自分的には伏線回収フェーズが来ました的な。 上記リンクのとおり、APIはサブドメインを切って受け付けることにしたけど、backbone.jsはデフォルトだと同一ドメインに対してリクエストを飛ばすので(あたりまえ)これを変更する。 backbone.jsでajaxのリクエスト先を別のHostにする方法 すると問題になるのがsame-originポリシー。これ
はじめに Rails アプリの JavaScript のテストは capybara(+capybara-webkit) を使えば一応できるけど、統合テストなのがね…。統合テストもちゃんと書くけど、やりたいのは JavaScript の単体テストなのに。 そこで Evergreen そんな中で最近知ったのが Evergreen っていう gem。 jnicklas/evergreen · GitHub こいつを簡単に説明すると、Rails に組み込める Jasmine テストランナー。Jasmine も同梱されてるので、インストールすればすぐに JavaScript のテストが書ける。 Evergreen のインストール Gemfile に group :test, :development do gem "evergreen", :require => "evergreen/rails"
こんにちは、tahara です。 Rails のエラー通知に Exception Notifier を使われてたりすると思いますが、 JavaScript のエラー通知はみなさんどうされているのでしょうか? ちょっと探してみたのですが、これだ! というもの見つからず、 PipelineDeals Dev Blog - PipelineDeals Dev blog - Javascript error reporting for fun and profit を参考にメールで JavaScript のエラー通知を行うようにしてみました。 JavaScript の window.onerror でエラーをつかまえる。 jQuery.post でエラー情報をサーバに送信。 サーバで ActionMailer を使ってエラー情報をメール送信する。 app/assets/javascripts/on
RailsにおけるRESTfulなURL設計勉強会 千駄ヶ谷.rb #12 #sendagayarb にて発表予定の記事です。 よくあるAjaxを利用したページの例 Sedndagaya.rbというグループへ投稿出来るサイトがあるとします。 この時、グループのページにアクセスすると、グループの詳細情報と、グループへ投稿された記事が表示されます。 このとき、大きく分けて3つの描写が行われます。 通常のリクエストに対するレスポンスの描写 非同期のリクエストに対するレスポンスの描写 DOM要素のイベントに対するレスポンスの描写 その時の流れは以下のようになります。 エンドユーザーがあるURIをブラウザ経由でアクセスする。 たとえば、 http://example.com/groups/1 にHTTP GETリクエストを送信してアクセスする。 Webサーバー(アプリケーション・サーバー)が対応する
最近Backbone.jsを触っています。Backbone.jsをRailsで使いたいならパッケージで導入してしまうのが一番簡単でしょう。 Gemfileにrails-backboneを追加してbundle install source 'https://rubygems.org' gem 'rails', '3.2.8' gem 'mysql2' group :assets do ... end gem 'jquery-rails' gem 'rails-backbone' # <- 追加 Backbone.jsを組み込みます。 $ bundle exec rails g backbone:install insert app/assets/javascripts/application.js create app/assets/javascripts/backbone/routers
JSXがアツい感じだったので触ってみようと思いつつも、Rails学習中なので時間取れないなーと思っていたのだけど、Asset Pipelineで使えるようにしたらRails学習にもなるし、一石二鳥だなーってんで、ちょっとやってみた。 やったのは、 SassとかCoffeeScriptとかそれ系のものをいい感じにコンパイルするためのTiltというライブラリの、JSX対応 fork版: https://github.com/kentaro/tilt/tree/jsx それをRailsで使えるようにする方法を調べた という感じです。とりあえず、rails serverで起動したら、以下の通りHello, World!はできました(HTMLではなく、consolel.logの出力です)。 しかし、多分(?)Tiltだけ対応しても、Sprockets側でも対応しないとrake assets:prec
明示しなくてもviewでの出力をHTMLエスケープしてくれるので無警戒になってる html_escapeがシングルクォートをエスケープしないという認識がない viewでjavascriptを書くときに埋め込む値をescape_javascriptしてない このあたりの要素が組み合わさるとXSSがうまれやすいという話を書きます。わかってる人にとってはクソみたいな内容なので読む時間がもったいないかもしれません。たとえばjs.erbでこんなふうに書いてたとして var article_id = '<%= @article_id %>'; @article_idが信用できる値だという前提だと問題ないのですが、controllerで @article_id = params[:article][:id] 実はこんなことしてるだけであとは素通しっていう人も、もしかしたらいるかもしれません。要は外から渡
Rails の Ajax は過渡的なもので注意が必要だ この記事は Ruby Advent Calendar 2011 の 11 日目の記事です。真面目な話を書く。 Ruby プログラマーの皆様にあっては Rails プログラマーの方が多くいらっしゃると思います。 Rails を用いて開発されるプログラムには悉く Ajax が使用されていることでしょう。 つまり Ruby プログラマの多くは JavaScript プログラマです。 ところで Ruby と JavaScript はその思想に多きな差異があります。 JavaScript はその隅々においてコールバック制御を用いたシングルスレッドのイベントドリブンなプログラミングを要求します。 実際こうしたイベントドリブンなプログラミングは大層難しく、 Rails ではそれを隠蔽する為の仕組みが提供されています。御存知 link_to や fo
こんにちわ、プログラマの川口です。今回はBackbone.jsをCoffeeScriptで記述し、Ruby on Railsと組み合わせて利用する簡単なパターンを試してみました。CoffeeScriptは非常に簡潔にJavaScriptを記述できる上に学習コストも低いのでおすすめです。最近はJavaScriptがプロジェクト全体のコードに占める割合が大きくなってきていますし、それに比例してやはりメンテナンス性や可読性が下がっていくこともあり事前に対応策が必須です。 Backbone.jsとは・・・とかは別にいいデスヨネ?dwangoさんのBackbone.js記事を見てください(完全にネタかぶりです、本当にありがとうございました)。 前準備 バージョンはこんな感じ。 Ruby on Rails 3.1.1.rc1 CoffeeScript version 1.1.2 Backbone.js
CloudEditはBackbone.jsとRuby on Railsを組み合わせたドキュメント編集システム。 CloudEditはRails/JavaScript製のオープンソース・ソフトウェア。どれだけ面白い技術であっても、動いているものがあるかないかで印象は大きく変わる。デモサイトやデモアプリケーションがあればすぐに試せて動いているコードを見て、動作原理に納得できる。 文書作成 JavaScriptのMVCフレームワークが幾つか登場しているが、これもまた実際に動いているデモがあるかどうかでデファクトが決まってくるかもしれない。フレームワークの一つ、Backbone.jsを使ったWebアプリケーションとしてCloudEditを紹介しよう。 CloudEditはシンプルなドキュメント編集アプリケーションだ。まず一覧でドキュメントのタイトルが並んでいる。それをクリックすると編集画面になる。
JavaScriptへコンパイルして実行することを前提としたスクリプト言語「CoffeeScript」がちょっとした注目を集めています。CoffeeScript自体は2009年末に登場し、その1年後の2010年12月にバージョン1.0がリリースされていますが、注目を集めたのは、数日前(2011年4月13日)にRuby on Railsの生みの親であるDHHが、次期バージョンのRails3.1でjQueryやSCSSと合わせて、CoffeeScriptをデフォルトとして採用するとTwitter上で発言して議論が巻き起こったからです。 Yes, it's true, Rails 3.1 is going to ship with CoffeeScript and SCSS in the box for use with the new asset pipeline. It's bad ass.
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
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
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
gist.githubは、右上の「embed」をクリックすると、 のようなコード片が出てきて、それをブログ等に貼り付けるとシンタクスハイライトされたコードが載せられる。 こんな感じのブログパーツをRuby on Railsで作るとどうなるかなーとか考えた。 今読ミのブログパーツをJavaScriptでやってみる 上記ブログでやっておられることがまさに僕のやりたいことだったんだけど、もうちょっとシンプルにしてみた。prototype.js非依存で。 まずはコントローラー。 そしてrjsファイル。gistで拡張子が「rb」になってるのはシンタクスハイライト対策です、、(.rjs だと効かないでやんの) 色々考えた結論としては、こんな感じで document.write を直書きでおkなんじゃないかと思った。この際気をつけることとして、僕はJavaScriptが久しぶり過ぎて引数のカッコを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く