rummelonp.comNameKazuya Takeshima Blogrummelonp.hatenablog.com Mastodon@[email protected] Twitter@rummelonp GitHub@rummelonp
HeartRails Tech Blog ハートレイルズのエンジニア、デザイナーによるブログです。 ウェブサービス、スマホアプリ、IoT デバイスの開発に関連する技術的な情報を発信していきます。 こんにちは。ハートレイルズの前島(@netwillnet)です。今回は aasm という、状態遷移をスマートに管理するためのRailsプラグインの紹介をしようと思います。 インストール方法 gem install aasm だけ。 どういうときに使えるの? 複数の状態を持つモデルを管理するときに威力を発揮します。例として、所有している本の状態を管理するモデルを書いてみましょう。状態には 未読(not_read) 読んでる途中(reading) 既読(read) 捨てた(dump) の4つがあるとし、 status カラムで管理します。また、別の状態として「友達に貸している」を管理する lendin
Ruby との付き合いはそれなりに長いのですが実は Rails で何かを作ったことは一度もありません。1scaffold や migration は一通り試してみたことがあったけれども、何か拭えない不安感や縁のなさから今までは周辺技術の一つとして以上には触ったことがありませんでした。 興味今回、出遅れはしたけれども 全面的に Merb & Rack ベースArel 登場i18n の機構が組み込み済みすでに実績が増えてきている辺りで強く興味が湧いてきたのでまずは一通りの準備をしてみました。 消極的な理由消極的な理由も実はあって、それは PHP のレガシーコードと戦うのに疲れた負債のある PHP で最新バージョンに追いつくのは大変最新バージョンでないと PHP や PHP のフレームワークの旨味は味わえないRuby なら最新でなくたって遊べるRails の過去の作法をほとんど知らないので混乱し
こんにちは、@sawada0903こと澤田です。 今Rails3.0を使ってサービスを開発しているのですが、 DBを定義するにあたり、やはりER図が欲しい。 Rails2.3.8を使っていた頃はRailroadというgemを使っていたん ですが、2008年で開発が止まっており、当然Rails3.0には非対応(涙)。 ちなみにRailroadに関してはこの記事が詳しいです。若干ね。若干。 Railsを見える化「RailRoad」 http://www.moongift.jp/2007/07/railroad/ なのでしばらく頭の中で開発を進めていたんですけど、やっぱり欲しい。 アジャイル気味に開発してるのもあり、かっつり最初から決めたくない。 とはいえリレーションを目で見たいし、複数人で開発するとなると尚更欲しい。 そこで、Googleさんに聞いてみる....。 と! こんなgemを発見。
Django for a Rails Developer by Ashok on November 26, 2009 This is not yet another Django vs Rails blog post. It is a compilation of notes I made working with Django after having worked on Rails for years. In this post I want to give a brief introduction to Django project layout from a Rails developer point of view, on what is there, what is not there and where to look for things. It should help a
最近、Railsをガシガシ使ってみて、心根的には「あまり好きになれないな」と感じたわけですが(※素直になれないのではなく、普通にそう思う)、それでもメリットをいくつか感じたので列挙してみました。 ※あまりサーバサイドの処理は担当していません。どちらかというと、裏側の処理を書いてました。そういう仕事をしていた人間の所感なので、ちと王道とはズレがあるかも。 requireって書かなくていい へいへい、無精者ですよ。 デフォルトでいろんなものがインクルードされていて、自前で標準モジュールを呼ぶことが少ないというのは、楽で良いと思います。 日付・時刻の扱いが簡易 元々RubyはDate.parseって書けば、割と空気を読んでくれたりするように、日付処理はかなり簡易ですが、ActiveSupportはそれに輪をかけて便利です。 tomorrowと言えば翌日が出てきたり、next_weekと言えば次週
参考:http://d.hatena.ne.jp/mizzusano/20080407/1207531215webdesigningとか読んでるとAIRとかFlexのネタがわりと目立つ。DBPressとか読んでいても、AIRとかFlexの記事は割とある(AS3)含めて。で、考えてみたのだけども、そもそもFlexは誰のためにあるのか、ということ。そもそもFlexとはなんなのかと。これは未だに僕もよくわからないのだけど、早い話 HTMLなのではないかと、HTMLの代わりにMXMLがあって、Javascriptの代わりにActionScriptが使えるのではないかなと。で、Flexというものは、RIAを手軽にサクっと作る事ができるツールで、それこそDreamWeaverライクに、フラッシュブルなサイトを構築できる。ドラッグアンドドロップでオブジェクトを配置していくだけで、サイトが作れるのだ。いや
Rails 2.2から導入されたI18nモジュールだが、さすがにバージョン0.0.1だけあって、実際に日本語でアプリを作ってみると細かいところでちょっとずつイケてなかったりするところが目につく。 以下に、僕が今までに気になったところを挙げてみよう。 1. ARのerror_messages_forでカラム名とメッセージの間に半角スペースが入る active_record-2.2.2/lib/active_record/validations.rb 208行目より抜粋 1 full_messages << attr_name + ' ' + message 半角スペースハードコード!! このおかげで、例えば、「名前」カラムの必須チェックのメッセージが 「名前 を入力してください。」 というように表示されてしまう。半角スペースがめちゃめちゃ気になりますよね。 そこで、こんなチケットをあげて超い
emacsでRails開発をする際、emacs-railsを使っている方が多いと思います。emacs-railsはとても便利なelispなのですが、最近は更新頻度が低く、rhtml→html.erbの対応も一部されていなかったりします。あとRspecの対応もイマイチ。emacs使いの人たちは一体どうやってRails開発しているのでしょうか? そこでRinariですよ Rails On Emacs | Google グループを見ると最近は"Rinari"の話題で持ち切りなようです。Rinariはemacs-railsとは違いコア部分を小さく保って、プラグインで拡張していくタイプのelispです。 Rinari: Ruby on Rails Minor Mode for Emacs 基本的には上記に全部書いてあるのですが、整理する意味でまとめてみます。 コア部分のインストール まず、gitでダ
以前、オリジナルのscaffoldジェネレーターを作るのがびっくりするほど簡単なことを知って、次のプロジェクトを始める時には必ずそれ用のscaffoldを作ってから始めようと思ってました。 プラグインの雛形を作る。名前は適当です。(YetAnotherScaffold) script/generate plugin ya_scaffold デフォルトのscaffoldをコピる。(下記の場所はDebianの場合) mkdir -p vendor/plugins/ya_scaffold/generators cp -r /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails_generator/generators/components/scaffold \ vendor/plugins/ya_scaffold/generators/ya_scaff
rails の2.x 系をまともに勉強していなかったので、調査しました。コピペの部分も多いですが、情報ソースと共に記述します。 あまり変更点がなかったマイナーアップデートは除外してあります。 1.2.4 2.0 からエラーになる構文に対する警告出力 1.2.4 で警告がでなければ、2.0 で問題なく動くと言われている セッション固定攻撃対策として, URLベースセッションのサポートを削除 ActiveRecord::Base#to_jsonを使っている場合に発生する可能性があるXSS攻撃を回避するようにJSONエンコーディングアルゴリズムが変更 参考 Rails 1.2.4登場 - 2.0での対応予定者も本バージョンで警告チェックを | エンタープライズ | マイコミジャーナル 1.2.5 JSONXSS 修正 参考 Ruby on Rails 1.2.5公開 - JSON XSS脆弱性を
The performance of Ruby on Rails is influenced by many factors, particularly the configuration of your deployment server(s). However the application code can make a big difference and determine whether your site is slow or highly responsive. This short article is about some of the tips and best coding practices to improve performances in Rails only, and won’t attempt to cover the server configurat
悪い冗談としか思えないんだけど、Merb と Rails が統合されるらしい。 Merb gets merged into Rails 3! by DHH (Rails 作者) Rails And Merb Merge by Yehuda Katz (Merb 主任開発者) Rails and Merb core team working together on their next release by Matt Aimonetti (Merb コアチームメンバー & merb-book リーダー) Merb *is* Rails by Ezra Zygmuntowicz (Merb project 創始者 & EngineYard 共同設立者) Rails and Merb Bury the Hatchet (Rails の有名ブログ) 実は 1 週間前に、DHH が Merb の信者
ローカル開発環境もpassengerで。 # /etc/apache2/sites-available/cloister <VirtualHost *:80> ServerName cloister DocumentRoot /var/www/cloister CustomLog /var/log/apache2/cloister-access.log combined ErrorLog /var/log/apache2/cloister-error.log RailsEnv development RailsBaseURI / </VirtualHost> <VirtualHost *:443> ServerName cloister DocumentRoot /var/www/cloister CustomLog /var/log/apache2/cloister-ssl-access
● [Rails] Metal Rails edge に Metal という新しい機能が追加された。これは Rack を用いた高速な Controller であり、Rails の色んな機能は捨ててでも、兎に角、単純で速いレスポンスがどうしても必要だ!という局面ではもの凄い助けになるだろう。 http://github.com/rails/rails/commit/8c3a54366435eebc2c8aa63b63e1349ce74a7b38 作成 場所は app/metal。metal ジェネレータが用意されているので、controller と同じ感覚で使える。既存のコントローラ(top1)と速度比較をするので、こちらの名前はtop2にしてみる。 従来のコントローラ的思想でいけば top2_metal.rb が作成されそうなものだが、そうはなっていない。この辺あたりに Merb 臭が少し
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
今回は ETag(Entity Tag) の話題です。サーバの構成をいろいろと考えていて気になり始めた技術の一つです。 ETag の詳細な説明は省きますが、HTTP/1.1 で定義されているヘッダで、キャッシュコントロールに使われます。 Apache の実装ではデフォルトで ETag はファイルサイズ、最終更新日時、inode 番号の3つから計算されるのですが、これが分散環境ではキャッシュの効かない原因になります。(同じ内容ファイルでも別のサーバ上にある場合には inode 番号が同じになることはほぼあり得ないため、負荷分散の都合で別サーバに割り当てられた場合、ETagも変わってしまう。)サーバの分散をするに当たってどんな問題があるかを調べていてみつけました。これを回避するためには、Apache 2.0 以降では FileETag ディレクティブの設定で ETag に inode 番号を含
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く