サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
bottleneck.hatenadiary.org
環境はRails2.0.2,Ruby1.8.6です。 ActionMailerのdelivery_methodに今までsendmailを使っていたのですが、本番アドレスでのDNSの設定に行儀よくspfを設定してあげたので、合わせてrails側の送信もSMTPにする必要が出てきました。ちなみにメールサーバはGoogle Appsを独自ドメインで使っています。tlsの関係でActionMailer + GMailの組み合わせが難しそうなのはよく知られていることのようですが、いろいろググってみたところ以下のものがありました。 1.http://www.danielfischer.com/2008/01/09/how-to-use-gmail-as-your-mail-server-for-rails/ 2.http://agilewebdevelopment.com/plugins/action
ちょっとはまったのでメモ。Apacheは例によってSynapticで適当にインストール。Mongrelはすでにポート3000番で動いているものとします。 まずはmod_proxyをloadするために以下を実行。 $ sudo a2enmod proxy 続いて/etc/apache2/mods-enabled/proxy.confを以下のとおり編集。 ProxyRequests Off Order deny,allow Allow from all ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ そして設定を有効にするため sudo /etc/init.d/apache2 force-reload これでいけるはずだと思ったら403エラーになります。 あちこち苦労して検索していたらよう
環境:Ubuntu 7.10, rubygems 9.0 こちらに書いてある通り、 sudo gem update --systemを実行したところ、gemコマンドやmongrelの起動で /usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)というエラーが出るようになりました。一応、Rails Forumの該当トピックを参考に、/usr/bin/gemの10行目(require 'rubygems'の下の行)に require 'rubygems/gem_runner'の一行を追加することで解決。激しく気持ち悪いですが・・・
(注)動作確認はRails2.0.1 設定データやテストデータをテーブルへ流し込むために、今まではDB側の機能を使っていたのですが(load data infileとか)、少々面倒くさくなってきたのでAWDwR(2版)を調べて見たところ、p252あたりにデータロードに関する記述を見つけました。ただ、これはマイグレーションの利用が前提になっているみたいで、普段migrationを使っていない私には運用的に少々難しそうです。そこで本の内容を参考にrakeタスクを作ってみました。 lib/tasks/load_master_data.rakeを作成 lib/tasks/master_dataにcsvまたはymlのデータファイルを突っ込む rakeタスク実行 と言う手順です。 rakeタスクファイル作成 railsアプリのlib/tasksにload_master_data.rakeという名前のフ
RailsでSSLを扱うとき、railsアプリ内でredirectしているところ(エラーページへの遷移など)ではなぜかhttpsでなくhttpのほうへ飛ばされてしまうという罠が良く知られていて、回避策としてapacheのhttpd.confなどで RequestHeader set X_FORWARDED_PROTO 'https'のような記述を追加してやればよいと色々なサイトさんで紹介されています。 今回、申込フォームへ遷移する際にはhttpsのほうへリダイレクトしたいという極々ありがちな要件がありまして、confファイルで以下のようにVirtualHostを設定してみました。 ServerAdmin admin@example.com DocumentRoot /home/hoge/rails-app/my-site/public ServerName example.com:80 R
UbuntuやDebianでは、crontabのテキストエディタがデフォルトではnanoになっています。 crontab -e でcronの設定をしたとき、一行が長すぎるとファイル保存時に自動的に改行してしまうので "/tmp/crontab.DKEWNu/crontab":1: bad minute errors in crontab file, can't install. というエラーが出てしまうことがあります。 対処1 viを使う export EDITOR=vi crontab -e 環境変数のEDITORを変えてやることで、viでの編集が可能となります。 対処2 nanoの設定を変更する nanoの改行設定を変更する方法がこちらにありました。/etc/nanorcの set nowrap この行のコメントアウトを外すと良いようです。
(注)この記事の動作確認環境はRC1です。 以前、Railsはデフォルトでtmp/sessionsにセッションファイルを作り続けるため、sessionsフォルダ内のメンテナンスが必要であるという記事を書きました(こちら)。Rails2.0ではデフォルトでCookieStoreという新しいセッション管理機構を用いるため、上記処理の必要がなくなります。 CookieStoreの特徴 クッキーで情報を持つため余分なIOがなくなり高速 セッションファイルの管理が不要 セッションデータが4kを越える場合はCookieOverflowエラー*1 デフォルト設定 environment.rbを確認すると、以下のような記述が追加されています。 config.action_controller.session = { :session_key => '_application_session', :secr
借りていたレンタルオフィスの契約期間が4月で終了なので、ようやくではありますが撤収準備をはじめました。今朝は燃えないゴミの日だったので、休みの割には早起きして8:30に事務所に行ったのですが、既に収集車が去った後でした・・・orz ひと片付けしたあと、近所のバーガーキングで朝からワッパーなど頼んでみたり、あまつさえ昼食にはセブンイレブンでうな重・松(¥1,850)などを買ってみたり、メタボ検診の40歳まであと6年あるとはいえ相当ヤバゲな気がしてきたので、今日は久しぶりにジョギングなどして見ました。しばらく継続していきたいと思っています。 40歳というのはシステム屋としてやっていく上でも重要な区切りになりそうです。現状の自身のスキルを考えるに、30歳代はどうにか乗り越えられそうに思っているのですけれど、40を過ぎてもこの業界で食べていくためには、もっと別のスキルを磨いていかなければならないの
Ruby on Railsをデフォルト環境のまま使うと、ログやセッションのファイルが無制限に増えていくので、どこかでそれらを整理する必要があります。正直なところ、この2点が自動化されないのはRails運用上の大きな弱点ではないかと思っています*1。 (追記 Nov 23, 2007) Rails2.0からはCookieStoreという新しいSession管理が導入されたため、デフォルト設定でセッションファイルのメンテナンスは不要になります。詳細はこちら。 セッションファイルの整理 デフォルトではrails-app/tmp/sessionsにユーザセッションがファイル形式で保存されます。このセッションファイル、特にアクセスが多いサイトでは膨大な数になったりするのですが、Railsが勝手に消してくれたりはしないので、定期バッチなどで自前で削除していく必要があります。以下はUnix系の環境でアク
Railsのsend_file 認証されたユーザにのみファイルのダウンロードを許可したい場合、公開ディレクトリにファイルを配置するわけには行かないので、アプリケーション側から送信制御を行うことになります。しかし、大容量のファイルを送信する場合、ファイル全体が一度にバッファに読み込まれてしまうと、メモリの使用率が大変なことになります。Railsのsend_fileは action_controller/streaming.rb # Sends the file by streaming it 4096 bytes at a time. ということで、一度にバッファに読み込むサイズがデフォルトで4096バイトに制限されているのですが、 アプリケーションを通すのでやはり遅い Apache + Mongrelだと4096バイトの制限が上手く効かない という問題があります。2のソースはこちら。 x_
前回の続きです。 代理キーは「スタイル」ではなく「テクニック」: 設計者の発言 理論的な話になると難しくてわからないので、とりあえず私も理解を深めるためにER図を描いてみようかなと思いました。 わたなべさんの問題の要件は以下の通りだとします。 倉庫が複数あるとして、倉庫にはさまざまな商品が保管される それぞれの商品は倉庫毎の特定の棚に保管される これだけの要件だと、こんな感じでよいでしょうか。 在庫テーブルについては、見やすいように(倉庫ID、商品ID)を複合主キーとし、idにユニークインデックスをつけています。idを主キーにする場合と意味は変わりません。 あるいは 一つの棚に一つの商品しか置けない という要件が追加されるとすると、 としても良いでしょう*1。niraikanaibirdさんのモデルも、この前提で作られているものと思われます。 さて、上記要件だけだと倉庫棚テーブルというもの
このページを最初にブックマークしてみませんか?
『iビジネス&テクノロジー』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く