タグ

ブックマーク / doruby.kbmj.com (25)

  • jQueryを使って外部のhtmlを読み込むTips

    jQueryを使ってヘッダ、フッタなど共通部分のhtml体のページに読み込むカンタンTipsです 共通で使いたいhtmlと、読み込む側のhtmlを用意する。共通部分にはheadタグとかbodyタグとかは不要です。 ほんとに部分的に抜き出したhtmlだけを用意します。 例えばヘッダ、フッタを共通にする場合は3つのファイルができることになります。 index.html 体 header.html ヘッダー footer.html フッター jQueryを使うので、htmlの文字コードはUTF-8にしておきます。 jQueryをダウンロードするhttp://jquery.com/ 特に理由がなければ「Production」を使用します。 htmlでjQueryを呼び出し、共通htmlを読み込むまずjQueryを呼び出します。ふつーに。 <script type="text/javascri

    yamaeda
    yamaeda 2010/12/28
  • Railsプログラマが知っておくべき97のこと

    こんにちは、SHIMADAです。 最近、オライリー社の新刊「プログラマが知るべき97のこと」がTwitterで話題に上っているようですね。 ここでは、Railsプログラマが知るべきことを挙げてみました。 残念ながら97も思いつかなかったので、25個です。看板に偽りありですね。ごめんなさい! ■ コントローラ 行数よりもインデントの深さに気をつける if-then-elseをネストしたくなったらロジックが間違っている アクションでないメソッドはprotected/privateにする 行数を減らす目的でbeforeフィルタを書かない グローバル変数、インスタンス変数にアクセスするポイントを集中させる グローバル変数(paramsとか)に代入しない ダイナミックファイダを使えないfindをみつけたらモデルのメソッド/named_scopeにする ■ モデル DBのテーブルを持たないクラスはAR

    yamaeda
    yamaeda 2010/12/21
  • EclipseでGitを使用してバージョン管理を行う

    EclipseでGitを使用することができるEGitの導入について説明します。 なお、EclipseはEclipse Helios (3.6)を使用しており言語ファイルにて日語化をしています。 ヘルプ>新規ソフトウェアのインストール>Heliosリポジトリ > egit 上記でEclipse Gitというプラグインがみつかるはずです(現在ver0.9.1) チェックボックスにチェックをいれたらインストールしてEclipseをリスタートします。 ウィンドウ>ビューの表示>その他 > Git > GitRepositories を選択するとGItリポジトリのウィンドウが下方に表示されます。 中には何も表示されていませんが右クリックでリポジトリの設定を追加することができます。 ここでGitのリポジトリを指定してプロジェクトをインポートすれば完了です。 Egitでの作業はプロジェクトを右クリック

    yamaeda
    yamaeda 2010/12/09
  • Passengerのステータス確認ツールの紹介(その1)

    Passengeerのステータス確認ツールは2種類あります。今回はその1つについて説明したいと思います。passenger-status passengerのプロセスの情報が見れます。passenger-statusで実行できます。出力は以下のようになります。----------- General information ----------- max = 6 count = 5 active = 0 inactive = 5 ----------- Domains ----------- /var/rails/hoge: PID: 4599 Sessions: 0 Processed: 13 Uptime: 1m 35s PID: 4594 Sessions: 0 Processed: 7 Uptime: 1m 36s PID: 4592 Sessions: 0 Processed: 1

    yamaeda
    yamaeda 2010/11/24
  • SSLを更新したらエラーコード:sec_error_unknown_issuerが表示された(ベリサイン証明書にて)

    先月SSLの更新を行ったところ、FireFoxにてsec_error_unknown_issuerという エラーがでました。 以下解決方法です。 どうやら、ベリサインにて2010年10月10日に仕様変更があり、それ以降に申請された SSLの中間証明書は従来とは別のものになっていたことが原因のようです。 参考:中間CA証明書のインストールについて 新仕様の証明書か否かは以下の方法で確認しました。 ※今回確認したのはセキュア・サーバーID用のものです。 1. SSL適用画面で「ページ情報」を表示させ、「証明書を表示」ボタンを押します。 → 証明書ビューアが表示されます。 2. 証明書ビューアの「一般」タグの「発行者」>「一般名称(CN)」と確認します。 証明書が新仕様、旧来仕様の場合それぞれ以下のように表示されます。 新仕様: VeriSign Class 3 Secure Server CA

    yamaeda
    yamaeda 2010/11/18
  • 文字数の違う複数の項目をliタグを使って綺麗に並べるTIps

    フォームの選択項目をliタグとcssのfloat、min-height、white-spaceを使って綺麗に並べるTipsです。 登録フォームを動的に作っていると、選択項目がとにかく多い!という事態に遭遇します。 静的なら1つずつtdで切って、文字が長ければcolspanで〜とできるわけですが、 動的に出してるとそういう細かい芸当は無駄にややこしいので、 できるだけ手軽に、できるだけ見栄えよく並べるために、リストタグを活用します。 並べたい項目は以下の通り。 たぬきうどん きつねそば 天丼 鶏ガラしょうゆラーメン 特選月見そば みそラーメン 明太子スパゲッティ ざるそば もりそば ナポリタン 森のきのことじゃこの和風スパ ざるうどん ペペロンチーノ 縦に並べるとページが長くなってしまうので、横に並べる事にします。 cssはこんなカンジ。 li { float: left; mar

  • Railsの処理の中でRakeのタスクを実行する方法

    今回はRailsの処理の中でRakeのタスクを実行する方法を紹介したいと思います。 続きはこちら http://doruby.kbmj.com/yoppi_on_rails/20100805/Rails_Rake_

  • RailsのgeneratorでMultiple migrationsとなる件の対応方法

  • rubyでOAuthを使ってみる

    Google, twitter, mixiアプリなどのAPI認可のためのOAuth(オース)という プロトコールが利用されています。 今回は、マッシュアップなWebサービスを作る上で必要になってくるOAuthの簡単な概念とrubyでの使用例を紹介したいと思います。 ■ OAuthとは? デスクトップアプリやwebアプリケーションなどにセキュアなAPI認証の 標準的な手段を提供するオープンプロトコルです。 OAuth利用することによって、ユーザのgoogleアカウント情報(ID,Password)を保持しなくてもgoogleのアドレス帳などを参照するwebサービスを作ることができます。 ■ OAuthが必要になった背景 OAuthがなかった場合、先程の例のようなgoogleのアドレス帳を参照するサービスを作ろうとした場合、ユーザのgoogleアカウント情報をもとにアクセスすることになります。

    yamaeda
    yamaeda 2010/11/10
  • Nagiosでログ監視!

    ですが、今回はNagiosでのログ監視について見て行きたいと思います。 まずは NagiosExchangeからcheck_logs.plをダウンロードし、インストールします。 (check_logs.plはperlで実行されるため、要perlです。) そして、実行権を付けましょう! これで、ひとまず ログ監視を実行できるようになりました。 さて、実行できたは良いものの ・どのファイルを読むのか ・どのエラーが発生した時に、メールを飛ばすようにするのか 等が設定できていないため、このままでは監視になりません。 ということで、次は「どのファイルを読み」、「どのエラーを拾うか」の設定をしていきます。 まずは、xxx.cfgというログ監視設定ファイルを作成し、/etc/nagios/check_logs/等、適当な場所へ配置します。 以下、設定ファイルの例です。 $seek_file_temp

    yamaeda
    yamaeda 2010/11/10
  • PowerPointでのプレゼンテーションでのひと工夫

    yamaeda
    yamaeda 2010/11/10
  • 【Ruby】半角/全角バリデータ

    入力項目には必ずといってもいいほど必要な「バリデーション」。 今回は、「その文字列が半角 or 全角文字のみであるか」というバリデーションをRubyで紹介します。 今回の条件は以下の通りです。 半角文字:半角カタカナ、半角英数字、一部の記号(濁点、半濁点など) 全角文字:半角文字でないもの メールアドレス、URLは除外 では、半角/全角のバリデーションのソース公開☆ KCODE = 'u' def self.hankaku?(str) return nil if str.nil? #文字列が空のとき unless str.to_s =~ /^[ -~。-゚]*$/ # 半角のみOKなので、全角が混ざっているとfalseが返る return false end return true end def self.zenkaku?(str) return nil if str.nil? #

    yamaeda
    yamaeda 2010/11/10
  • Trittonを利用した複数テーブル&カラム全文検索設計

    設計条件 設計を行う際、以下のような条件がありました。 ・全文検索はTritonnのみで実施。HyperEstraier等の外部検索エンジンは使用しない。 ・対象となるカラムを一度に全文検索対象とする。 ・検索結果は日記単位のリストで出力する。 ・検索速度はかなり重要とされた。 Tritonnを使用する上での問題点 ここで困ったのはTritonnでは全文検索を行うテーブルはMyISAMで作成する必要があるということです。 MyISAMではトランザクションを使用することが出来ないので、頻繁に更新がある日記テーブルやコメントテーブルには あまり使用したくありません。 また、トランザクションを使えないためユニットテストを書きづらいという弊害もあります。 ■ 設計案 前提条件を踏まえて実現するに当たり、以下の4案を考えました。 案1:各検索対象テーブルをMyISAMで作る&Joinして検索 メリ

    yamaeda
    yamaeda 2010/11/10
  • counter_cacheを使ってみよう

    こんにちは。KBMJの多です。 今回はcounter_cacheの使い方を紹介します。 counter_cacheとは、RailsのActiveRecordでRDB関連の設定の1つです。 これを設定することにより、親子関係のテーブルにおいて、親テーブルが子テーブルの 件数をキャッシュすることができるようになります。 例えばいろんな商品のクチコミサイトがあるとします。 そこでは各商品毎にクチコミを複数件登録することができ、 商品一覧ページにクチコミ件数を表示したり、クチコミ件数が多い順に並び替えたりできる、という設定です。 さて、クチコミ件数が多い順に並び替える時はどんなSQLを発行しましょうか。 商品とクチコミは1対多の関係なので、各テーブルとカラムは以下の通りです。 (今回の説明に必要ないモノは省いています) ・商品(親テーブル) モデル名:Item テーブル

    yamaeda
    yamaeda 2010/11/10
  • Ruby1.9でRailsる

    ■ はじめに Ruby1.9 を Rails で動かす上で、一番頭を悩ませる問題が、 incompatible character encodings: ASCII-8BIT and UTF-8 というエラーかと思います。 Ruby1.9 から String に Encoding を持つようになりました。 これにより異なる Encoding 同士では、比較・結合を行うことができず、上記のようなエラーが発生してしまいます。 これは、Magic Comment で script encoding をUTF-8で指定しても、DB の Encode を UTF-8 に指定しても発生してしまいます。 これには色々と原因があるのですが、大きくは ActionView のレンダリング時に、ASCII-8BIT で出力される部分があるのが問題となります。 通常、Ruby1.9 でコーディングする際には、M

    yamaeda
    yamaeda 2010/11/10
  • WEBサーバ2台構成でpoundによるLBを行う例

    ■ WEBサーバ2台構成でpoundによるLBを行う例を書きます。 サーバの情報など web-vip : 10.0.0.10 web1 : 10.0.0.11 web2 : 10.0.0.12 今回の例ではpoundをweb1に設置し、負荷分散先をweb1、web2とします。 設定方法としては、poundでport80をListenし、web1のport8000、web2のport80へLBする。 という感じです。 poundの設定です ListenHTTP Address 10.0.0.10 Port 80 Service BackEnd Address 10.0.0.11 Port 8000 End BackEnd Address 10.0.0.12 Port 80 End End End 以上の設定で完了です。 必要に応じて負荷分散の割合を変更することができますので、 様子をみてwe

    yamaeda
    yamaeda 2010/11/10
  • rails の action_cache (アクションキャッシュ)を使う、その二。

    M.T. です。だいぶ開いてしまいましたが、 rails の action_cache について、続きを書きます。 前回のエントリはこちら。 action_cache の仕組み 前回のエントリでは rails 組み込みのキャッシュ機能についてざっと書きました。 今回は、その中から action_cache に的を絞って書いてみます。 実際に、コードを例にして見てみましょう。 # コードはこんな感じ SampleController サンプルモデルから全件を取得して表示するだけのコントローラです。 action_cache の宣言は、cache_action :メソッド名で、指定されたメソッドが対象となります。 引数にメソッド名を指定しない場合、クラス内の全 public メソッドが対象となります。 おさらいすると、action_cache は around_filter として

    yamaeda
    yamaeda 2010/11/10
  • googleウェブサイトオプティマイザーを使ってみよう

    2009年に公開されてから、画期的なツールと言われながらも、いまだ普及しているとは言えないGoogleの「ウェブサイトオプティマイザー」。 今回は、そのツールの解説をします。 はじめまして。アクセス解析チームのアソウです。 以後よろしくお願いいたします。 近年webサイト最適化の手段として、アクセス解析は欠かせないものとなってきました。 Google Analyticsの台頭でツール導入の敷居は非常に低くなり、いまや個人から大企業まで、多くのwebサイトが、数値を確認しています。 しかし、アクセス解析はあくまでもサイトの現状の確認を行なうものです。 その解析結果をもとに、サイトの改善施策を行なわなければ、当の意味での効果は表れません。 今回はリニューアルほど大掛かりではないけれど、サイト改善の具体的な方法を解説したいと思います。皆様のお役にたてば幸いです。 ■ウェブサイトオプティマイザ

    yamaeda
    yamaeda 2010/11/10
  • 【Ruby】半角/全角バリデータ~解説編【Rails】

    前回投稿した半角/全角バリデータの正規表現の中身を解説します。 前回は、rubyで使える半角/全角バリデータを紹介しました。 あのソースは突貫工事的に書いたものなので、実は自分でも仕組みを理解しないままでした。 ですが、「それじゃあいかん!」ってことで、1つずつ調べてみました。 以下、ソース再掲↓ KCODE = 'u' def self.hankaku?(str) return nil if str.nil? # 半角のみOKなので、全角が混ざっているとfalseが返る unless str.to_s =~ /^[ -~。-゚]*$/ return false end return true end def self.zenkaku?(str) return nil if str.nil? # 全角のみOKなので、半角が混ざっているとfalseが返る unless str.to_

    yamaeda
    yamaeda 2010/11/10
  • データベースを一発でリセットする方法

    開発途中にデータベースを空の状態にしたい時のコマンドをご紹介します。 最近Rails2系を触れて知ったのですが、Rails1系だとデータベースをリセットする際に rake db:drop rake db:create rake db:migrate とやっていたのですが、 rake db:migrate:reset とやると上の3つのコマンドと同じ事をやってくれるので楽です。 ちなみにrakeタスク一覧はrake -Tで見れます。 せっかくなんでいくつかrakeコマンドを紹介します。 rake db:create RAILS_ENV=production ymlに定義してあるデータベースを作る(上記の場合production) rake db:create:all ymlに定義してあるデータベースを全部作る rake db:drop RAILS_ENV=production ymlに定義し

    yamaeda
    yamaeda 2010/11/10