Merbと違って、Railsには標準的なユーザ認証機構が用意されていないので、 昔から様々な認証用プラグインが乱立していました。 login_generator, acts_as_authenticated, restful_authentication, restful_openid_authentication and so on... 今回は、@a_matsudaさんや @lchinさんの勧めもあり、 比較的新しいClearanceという認証プラグインを試してみる事にしました。 http://github.com/thoughtbot/clearance/tree/master インストール方法 config/environment.rbに 1 config.gem "thoughtbot-clearance", 2 :lib => 'clearance', 3 :source
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 半角スペースハードコード!! このおかげで、例えば、「名前」カラムの必須チェックのメッセージが 「名前 を入力してください。」 というように表示されてしまう。半角スペースがめちゃめちゃ気になりますよね。 そこで、こんなチケットをあげて超い
最近ようやく Rails をいじる時間を取れるようになってきて、 本を見ながらチュートリアル的なアプローチから、 google先生にあれこれ問い合わせながら、 テスト実装という流れになりつつある。 そんな中で例外処理のチェック方法が よくわからなかったので、まとめておきます。 ActionController::Base の rescue_action_in_public。 これを ApplicationController 以降で オーバーライドしてやれば、独自の例外対応ができる。 たとえばこんな感じ。 def rescue_action_in_public(exception) case exception when ::ActionController::UnknownAction render :text=> "unknown action" else render :text=>
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/32 Ruby on Railsでは、URLのマッピングに関する情報を routes.rbファイルに記述します。これを記述する際に、URLを丸ごとパラメータとして渡したい事があります。例えば、はてなブックマークでは、特定のURLに関するエントリーの情報を参照するためのURLは、こんな感じになります: http://b.hatena.ne.jp/entry/http://foo.bar.com/ これがdel.icio.usの場合、URLを直接指定するのではなく、md5を使ったダイジェストを渡すようになっています。URLの規格としては後者の方が正しいアプローチなのですが、アドレス記入欄にURLを手入力する場合や、グリースモンキーから利用す
Rails勉強会@東京の月刊Merbで瀧内さんがサンプルを示しながらMerbの使い方を説明してくれました。 で、そのときにブログのようなものを実例に使っていまして、そのCRUDの設計についてプチ議論になっています。 まとめ なんかコードを書いてみたりしたらえらい長くなったので、私の考えを簡単に要約すると とりあえずこの前提に興味があるならDHHのプレゼンを見るといいと思います map.resource使うといいよ ビューの事情なんだからAjaxとテンプレート差し替えで何とかするのがいいかと それを簡単にするプラギンが欲しい という。あと読み返して思ったんですが、ネストしたリソースの扱いについての議論に対して、そのリソースはネストしていない、という主張が来てるのか。それはすれ違うなー、と思いました。 ここから意見いろいろ データ構造としてはよくあるブログを想起していただければいいんですが、P
すでに何度も書いていて恐縮ですが、年末に独自 CMS の実装をして、その過程でいろいろ便利なライブラリやノウハウを獲得しました。せっかくですので、これからしばらくの間、それらを個別にご紹介していこうかと思います。 本日は手始めに Ruby on Rails のちょっとした Tips をご紹介します。表題のとおり、 Rake タスクから任意のコントローラのアクションを呼び出す方法です。サイトを全更新する Rake タスクを作るために編み出しました(笑) あまり頻繁に必要になるものではないですが、知っていると便利な Tips だと思います。ご存じなかった方は、ぜひご一読ください。 結論から言うと、 ActionController::Integration::Session のインスタンスを作成して、そのメソッドを呼ぶだけ実現できます。例えば、トップページの HTML を表示する Rake タ
広告配信用のサーバとして有名なものと言えばOpenXだろう。このようなオープンソース・ソフトウェアを導入すれば、広告配信や管理サービスが即座に立ち上げることができて便利だ。だが既にできあがっているシステムだけに柔軟なカスタマイズには向かないかもしれない。 管理画面がないのでこれだけで申し訳ない… 既存のサービスと連携させたり、管理画面を組み込んだりするのは難しい可能性がある。そのためのコストをかけても良いのであれば、カスタマイズ重視でRails Ad Serverを導入してみよう。 今回紹介するオープンソース・ソフトウェアはRails Ad Server(RAdS)、Rails製の広告配信プラグインだ。 Rails Ad ServerはRailsのプラグインとして提供される。バナーIDごとの表示回数とクリック回数、広告配信の形式とCPM、バナーのイメージとURL、キャンペーン設定などが行え
さて、Rails 2.2も 無事にリリース されたわけだが、今回の目玉はなんといっても “I18n” 対応だろう。 つまり、今回の大規模なI18n対応で、やっとこれが# Rails 2.1.2 より抜粋 options[:object_name] ||= params.first options[:header_message] = "#{pluralize(count, 'error')} prohibited this #{options[:object_name].to_s.gsub('_', ' ')} from being saved" unless options.include?(:header_message) options[:message] ||= 'There were problems with the following fields:' unless opti
Railsの fixturesはたいへん便利な仕組みなのだが、今までは決められた名前のディレクトリ($RAILS_ROOT/test/fixtures/)内の決められた名前(テーブル名と同じ名前)のファイルしか読み込めないという制約があったため、例えば複数パターンのテストデータを用意しおいて切り替えて DBに食わせたいような場合なんかに、ちょっと不便に感じることがあった。 が、最近の edgeでは2箇所ほど fixtures関連の修正が入っており、fixturesの使い勝手が向上している。 1. サブディレクトリ内の fixturesを読み込む rakeタスク まず、fixturesをディレクトリで分けて複数用意してディレクトリ名を指定して読み込む rakeタスクが 実装された 。 例えばこんな fixturesファイルを用意して、 test/fixtures/users.ymljoh
環境 クライアント:携帯 サーバ apache mongrel mongrel_cluster rails +actionキャッシュを使用している。 1 class BlobsController < ApplicationController 2 layout nil 3 caches_action :show 4 session :off, :only => :show 状況 cacheがないページにアクセスすると、正しく表示される。どうやらcacheを返したときに、(携帯で)うまく表示できない様子。 PCではcacheがあっても、なくても正しく表示される:firefox。PCのブラウザは賢い。 ログを確認:cacheがあるのでhaltedしたというメッセージ これはcacheがあるので、ActionCacheFilterを中止して、cacheを返す時のメッセージ。なのでエラー
RubyGems 1.3.1へのアップデートに失敗する? - N7 - sandbox (/12/7 タイトル誤記修正「1.3.1」<-「1.3.1 1」) Rails 2.2.2 だと RubyGems は 1.3.1 以上を要求する [2810] script/server ~/rails/222 18:50 1206 Rails requires RubyGems >= 1.3.1 (you have 1.2.0). Please `gem update --system` and try again. だが、普通にそうしてもそうならない。 [2811] gem update --system ~/rails/222 18:50 1206 Updating RubyGems Nothing to update rubygems-update すれば良いらしい [2812] gem l
_ Rails 2.2 RC1 を threadsafe! で使ってみた Rails 2.1 で運用していたアプリを 2.2 RC1 にアップデートしてみたよ。デモアプリとかじゃなく、それなりにまともに運用しているサービスでやらかしてみたので、参考になる人もいるのではないかと作業の手順を晒すのです。 現状ベンチマーク ステージング環境を ab で計測 Ruby 1.8.6 patchlevel 111 Rails 2.1.1 nginx -> unix domain socket -> thin*3 * ほぼ静的なトップページ Concurrency Level: 100 Time taken for tests: 20.756579 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total trans
Rails 2.2 delivers several new and improved features. This list covers the major upgrades but doesn't include every little bug fix and change. If you want to see everything, check out the list of commits in the main Rails repository on GitHub. Along with Rails, 2.2 marks the launch of the Ruby on Rails Guides, the first results of the ongoing Rails Guides hackfest. This site will deliver high-qual
Rails pluginとして動く言語、purlを公開しました。 purl はクライアントサイドから柔軟な画像処理を行うために開発されました。 サムネイルの生成などを行うプラグインはいくつかありますが、そのどれよりも強力で汎用性、拡張性があります。 セットアップ Rails2.1以上では、 $ script/plugin install git://github.com/nanki/purl.git それ未満では、 $ git clone git://github.com/nanki/purl.git -- vendor/plugins/purl gitが無い環境なら、githubのdownloadからファイルを落として、vendor/plugins/ に配置してください。 依存ライブラリ 必須: ImageMagick, rmagick あった方がいい: cairo, rcairo その
RailsでもりもりJSを書くときには、ちょっと問題というか面倒なところがあります。 ERbやhamlの中にインラインで書いていく場合 あとでそれを静的なファイルに切り出したくなる エディタが馬鹿になる(とりあえずvimは使いづらい) はじめから静的なファイルに切り出す場合 mongrelがmtimeのキャッシュをなぜか変に保存していて再読み込みされないことがあった気がする。昔。 ということでこんなの。 開発中(Rails.env == "development")だとファイルの中身をインライン展開、それ以外のモードではscriptタグができます。 Railsがデフォルトで提供するのはjavascript_include_tagで。自分で書いたスクリプトはこの_fileを使うとうれしい感じになるかと。 = javascript_include_tag :defaults = javascr
先日、運用環境のRailsで動いているアプリのログからレスポンスタイムを確認する機会があって、production.logをもとに、時間がかかっている重い処理を抽出しました。ちなみにRailsのバージョンは2.1系です。 このエントリは、そのメモ書きです。どの処理が遅いのかを探し出すための最初の一歩ということで参考になれば。 Railsのログ Railsアプリをproductionモードで動かしていると、以下のようなログが各処理の最後で記録され、処理全体にかかった時間や、そのうちのレンダリング処理、DB処理の内訳なども確認できるようになっています。 Completed in 0.52340 (1 reqs/sec) | Rendering: 0.41524 (79%) | DB: 0.07341 (14%) | 200 OK [https://example.jp/hoge] 時間がかかっ
Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や
Apache Best Practice Deployment By Charles Brian Quinn The preferred setup (for now) is to put Mongrel behind an Apache 2.2.x server running mod_proxy_balancer. Apache is a proven web server, runs half the Internet, and is a pain to configure. These instructions should get you started, but refer to the Apache folks for anything more complex or weird. When you're just starting out, don't bother
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く