いつのまにか、Rails3+1.9.2というモテコンビで仕事をやっております。で、Rails3から入った新機能として、SexyValidationというのができたので、それを使ってみました。 Sexy Validationとは、いままでのRailsのvalidationの書き方とは違い、Modelに対してのvalidationがスッキリ書けるようになりました。例えば、titleカラムを持つPostというModelがあるときに、title要素は必須なんだというvalidationを書こうとすると、以下のようになります。 class Post < ActiveRecord::Base validates :title, :presence => true end 今迄の validates_presence_of :name よりわかりやすいのではないでしょうか。 独自のvalidationを
こんにちは、@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を発見。
メモ。 unicornは本家がnginxを勧めてることもあってか、リバースプロキシとして使っているWebサーバはnginxの例が多いようです。とはいえ、慣れたApacheを使いたいとか、すでにApacheで動いてるものがあるとかの場合、Apacheだけで何とかしたいです。という場合の例。 unicorn側は普通に設定。ただしUNIX domain socketが使える気がしないのでTCPで。 rails_env = ENV['RAILS_ENV'] || 'production' worker_processes 3 preload_app true timeout 30 listen 8888, :tcp_nopush => true 【以下略】 Apache側のhttpd.conf(というかdebianならsites-available/以下)は以下のような感じになります。静的ファイル
伊藤です。 前回ブログで紹介したRailsサーバUnicornくんを運用し始めて結構時間が経ちました。 サービスを落とさないであるとか、システムの安定性を確保するために、 ちょっとしたユーティリティを作ったり監視ソフトMonitの設定を行ったりしていました。 みなさんのお役に立つかわかりませんが、弊社でUnicornと組み合わせて運用に利用しているツールや設定をブログに掲載してみたいと思います。 もっといいやり方がありましたら、ぜひコメント欄でご紹介頂ければと思います。 ダウンしたら自動的に再起動 これはMonitで行っています。 もちろん同内容の監視ツールGodでも可能だと思いますが、以前設定した経験があって設定が楽そうだったので、Monitでやってみました。(事実楽でした) check process unicorn with pidfile "/path/to/rails/t
Rails.vim cheat sheet 2006/10/20 !"#$%&'%()*+#,-./0 Creates a URL from !""#$%%&'()&!'*"$+,,,/ and the {#,-.} given. If {#,-.} is omitted, a sensible default is used (con- siders the current 123-$244%$5-%6#4,-%, but does not take routing into account). !"71$'#-)+71$'#-/)+2#-'237/ Call ruby 71$'#-5+71$'#-/)+2#-'237/. !"123724%)+2#-'237/ Start the appropriate script. !"$833%$)+129%/ Executes +129%/
目次 ユーザ認証付Railsアプリの構築 ←いまここ RailsアプリにCicindelaインタフェースを実装 Cicindelaの設定とバッチ処理設定 先日Sapporo.rbで黙々と読書した成果として、Ruby on RailsのアプリにCicindelaのレコメンデーション機能をつけることができました。そんなわけで何回かに分けて説明していきます。 まずはRailsアプリを作ります。お題としてはソーシャルブックマークサービスにしてみます。ブックマークアプリはRailsの課題曲みたいなもので、慣れた人なら10分で作れます。今回はそれに加えてユーザごとにブックマークできるよう、ログイン認証などの機能拡張が必要になります。 完成版のソースコードはgithubにて公開しています。 Railsアプリケーションの作成 今回の環境としてはこんな感じです。 OS: Ubuntu 8.04 Ruby
Web サイトの更新を通知する Atom / RSS フィードは、現在の Web サイトになくてはならないもののひとつです。当然、 WebOS Goodies でも配信しているわけですが、独自 CMS に移行した際に、それらのフィードも自分で生成しなくてはならなくなりました。そこで、わりと汎用的に使える Builder テンプレートを作ってみたので、本日はそれをご紹介しようと思います。 一応、 Feed Validator で Valid の評価が貰えるようになっていますので、よろしければご利用ください。 まずはソースコードです。適当にコピペして使ってください。 こちらが Atom 用のテンプレート。 atom_feed(:language => 'ja-JP', :root_url => @site_url, :url => @atom_url, :id => @site_url) do
RailsでRead OnlyなModelを使うには acts_as_readonlyable というプラグインを使うという方法があるようですが、2.3.4では動かない気配です。 こちらを改造して使うには、 http://hisme.net/~masaki/blog/article/show/41 が参考になります。 プラグインを使わない方法として http://lunatear.net/archives/001089.html という方法もあります。 2.3.4を使っていてプラグインに手を入れるのがちょっと面倒でさらにいっぱいRead OnlyなModelを使いたいと思ったのでプラグインを使わない方法を参考にさせていただき以下のような感じでやってみました。 app/models/read_only.rb を以下のような感じで作ります。 class ReadOnly < ActiveRec
Railsで更新は別のアプリが担当しているなどの理由で、読み取り専用でテーブルにアクセスしたい時がありますが、残念ながらRails自体には読み取り専用のモデルを作成する手段は無いようです。 と言うわけで、代替手段を探していたのですが、どうもスマートな手段が無く結局、readonly?メソッドを上書きして常にtrueを返すようにして、凌ぐようにしました。 ただ、それだけだと削除などが有効なため、結局以下のように一部メソッドでは直接ActiveRecord::ReadOnlyRecordをraiseしています。 以下、サンプルコードです class Hoge < ActiveRecord::Base # 全レコードをReadOnlyということにしてCreate、Update系を阻害 def readonly? return true end # テーブル自体の破壊を例外を返して阻止 def b
Raycastを使い始めて1年経ったので、どういうことに使っているかを振り返ってみる。去年書いた AlfredからRaycastに移行した - oinume journal の記事から少し使い方が変わっているところもあるのでメモがてら。 基本的な使い方 Cmd + QをRaycast起動のショートカットとして割り当てている。Pro版は使っていないのでAI機能などは使ったことがない。 ブラウザのブックマーク検索など、よく使うけどHotKeyを割り当てるほどでもないRaycastコマンドはbmのようにAliasを設定している。 Cmd + QでRaycastを起動してbmと入力するとブックマークの検索ができるので楽ちん アプリケーションランチャー機能 アプリケーションを起動するときのランチャーとして使っている。よく使うアプリにはHot Key(ショートカット)を割り当ててる。 Clipboar
Twitterの大規模システム運用技術、あるいはクジラの腹の中(後編)~Twitterのサブシステム「Unicorn」「Kestrel」「Flock DB」 米サンタクララで行われていたWebサイトのパフォーマンスと運用に関するオライリーのイベント「Velocity 2010」の、Twitterのシステム運用について説明するセッション「In the Belly of the Whale: Operations at Twitter」(クジラの腹の中:Twitterでの運用)を紹介をしています。 この記事は「「Twitterの大規模システム運用技術、あるいはクジラの腹の中(前編)~ログの科学的な分析と、Twitterの「ダークモード」」の続きです。 Twitterのサブシステム「loony」「Murder」「memcached」 ここからはTwitterのサブシステムについて紹介しよう。 T
Ubuntu Karmic (9.10) で MongoDB + mongoid を使って簡単な Rails アプリケーションを作ってみました。 MongoDB とは、最近注目を集めつつあるドキュメント指向データベースの一種。mongoid は MongoDB にアクセスするための RubyGems。 参考資料: http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages http://mongoid.org/docs/installation 次の行を /etc/apt/sources.list の末尾に追加 deb http://downloads.mongodb.org/distros/ubuntu 9.10 10gen aptitude で MongoDB をインストール。 % sudo aptitude updat
codereposを見てたらsecondlifeさんのrails_chm_generatorというのを発見して、 ちょうどrails 2.x系を使うようになってhtmlhelpが欲しかったので使ってみた。 本家リポジトリからチェックアウトしてきたものをベースに rdocしてchm用の各種ファイルを生成するような作り。 本家から最新の2.0.2のソースをチェックアウト $ svn co http://dev.rubyonrails.org/svn/rails/tags/rel_2-0-2 rails 同ディレクトリにrails_chm_generatorをexport $ svn export --force http://svn.coderepos.org/share/lang/ruby/htmlhelp/rails/generator rails rails_chm_ge
※ドキュメントを読みながらこんなもんかな?とやってみたやつなので問題あるかもしれません。何かあればコメント頂けると嬉しいです。 例えば、DBからデータを取り出して逐次メールを送信する場合。 よく知られているようにメールの送信はコネクションの確立やSMTPサーバの処理などの待ち時間が長く、逐次処理をしていると無駄が大きすぎる。 処理を並列化して、あるメールの送信待ち時間を他のメールの構築等に充てて無駄をなくすことを試みる。 環境 Ruby 1.8.6 Rails 2.1.0 PostgreSQL 8.3 処理の並列化 Thread.newを使う。単純に実装すればこんなかんじ。 # 未送信のレコードをそれぞれ別々のスレッドで処理するサンプル threads = [] mails = find(:all, :conditions => ["sent = ?", false]) mails.eac
jpmobileが大きく改良されるような気がするのでオレオレ拡張を晒します。 http://d.hatena.ne.jp/conceal-rs/20091205/1259974784 携帯はARセッションストア、PCはCookieストアをつかう。 # require "jpmobile_session_store" # config.action_controller.session_store = JpmobileSessionStore class JpmobileSessionStore #< ActionController::Session::AbstractStore def initialize(app, options = {}) # $app_logger.info "********** JpmobileSessionStore#initialize options=#
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
If you’re looking for a developerWorks forum — Don't panic! You are in the right place. You are here because specific IBM developerWorks forums, blogs and other Connections content have been decommissioned. This page will help you find the content you are looking for, get answers to your questions, and find a new community to call home. Where am I? You are on the IBM Community area, a collection o
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く