Railsの最近のブログ記事

Rails サーバーを起動しようとすると、こんなエラーが。。

bundle exec rails s
/Users/yz/Documents/work/repo/hoge/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': This installation of RMagick was configured with ImageMagick 6.8.6 but ImageMagick 6.8.7-3 is in use. (RuntimeError) 

原因はおそらく、先日別案件で必要に迫られて sudo port upgrade outdated した際に ImageMagick が更新されてしまったせいでしょう。
前にも同じ現象が起こっていて、その時はググって解決策を探したので、忘れないようにメモ。

つい最近 Rails を使った多言語対応のソーシャルゲームアプリを作ったので、自分のメモがてら、気をつけた方が良さそうなポイントを残しておきます。 (今現在も開発進行中ですが) 割と最近見つけたんだけど、このエントリがコンパクトにまとまっていて、 i18n のエントリポイントとしては最適な気がしました。

Railsの多言語化対応 i18nのやり方を整理してみた!【国際化/英語化】 - 酒と泪とRubyとRailsと

このエントリが非常に良いので、流れに沿った形で僕の反省点などを書いていこうと思います。

2/10(金)〜2/11(土)に「インフラエンジニア&アプリエンジニア合同合宿」に行ってきました。

僕はスタッフとしての参加でしたけど、チームかにたまのメンバーとして一緒に作業したので、このエントリは参加者としてのイベント全体の振り返りになります。

スタッフとしてどうやってこのイベントを作ったか、みたいな話は気が向いたら書くかもしれません。

Mac で Rails 3.2.1 を使おうとしたら、rails new するときにエラーになった。
% rails new myapp --skip-test-unit
      create
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app

...

      create  vendor/assets/javascripts/.gitkeep
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.gitkeep
      create  vendor/plugins
      create  vendor/plugins/.gitkeep
         run  bundle install
/Users/yz/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799: [BUG] Segmentation fault
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]

-- Control frame information -----------------------------------------------
c:0042 p:---- s:0226 b:0226 l:000225 d:000225 CFUNC  :connect
c:0041 p:0011 s:0223 b:0223 l:002620 d:000222 BLOCK  /Users/yz/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799
c:0040 p:0031 s:0221 b:0221 l:000220 d:000220 METHOD /Users/yz/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/timeout.rb:54
c:0039 p:0026 s:0209 b:0209 l:000208 d:000208 METHOD /Users/yz/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/timeout.rb:99
c:0038 p:0485 s:0203 b:0203 l:002620 d:002620 METHOD /Users/yz/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799

...

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

中略している部分も含めたすべてのエラーメッセージはココ
解決したので、以下対応履歴のメモ

環境は MacOS X 10.6.8 rvm 1.10.2 MacPorts 2.0.3

Emacs + rnariでrailsアプリを作っていたら、ある日突然 C-c ; w でサーバーが起動しなくなった。
基本的にemacsとRinariで快適Rails開発! - おもしろWEBサービス開発日記に書いてある通りに設定したんだけどなぁ、とか思いながらexecution problem - Rails On Emacs | Google グループを見て色々確認したけど、全く直らん。

最近導入したemacsライブラリを見直してみた結果、rvmがいけなかった。
↓ コレ
http://github.com/senny/rvm.el

多分rvmの設定をちゃんとやれば大丈夫だと思う。一旦コメントアウトしておいて回避。

ここの記事を参考にemacs + rinari + yasnippetで便利に使っていたら、erbを編集している時にsnippetの候補が二つ出てきてムカついた。

原因はeschulte's yasnippets-rails at master - GitHubからダウンロードしたyasnippet-railsのディレクトリ内にhtmlという名前でrhtmlへのシンボリックリンクが存在していたため。

MacBookPro% ll
total 8
lrwxr-xr-x@  1 yz  staff    10  9 22 12:13 html-mode -> rhtml-mode
drwxr-xr-x@ 17 yz  staff   578  9  7  2008 rhtml-mode
drwxr-xr-x@ 49 yz  staff  1666  9  7  2008 ruby-mode

html-modeとrhtml-modeを二回読み込んでいたってことね。find | grepして探したけど定義ファイルが一個しか見つからなくてなんでだろうと思ってたけど、リンクを削除したら解決した。


これでさっき作成したモデル経由でDBにレコードが入った。
require 'net/http'
require 'rexml/document'

class ImportCalendar
  @@logger = Logger.new(File.join(RAILS_ROOT, "log", "import.log"))
  
  def self.logger
    @@logger
  end
  
  def self.execute()
    # @TODO
    # バッチ処理なのでorderbyを最適なものに変更
    result = 
      Net::HTTP.get('www.google.com',
                    '/calendar/feeds/' +
                    'fvijvohm91uifvd9hratehf65k@group.calendar.google.com/public/full/?' +
                    'max-results=1&futureevents=true&orderby=starttime&singleevents=true&sortorder=ascending&ctz=Asia/Tokyo')

    doc = REXML::Document.new(result)
    ent = CalendarEntry.new
    doc.elements.each('feed/entry') do |node|
      _id = node.elements['id'].text
      _updated = node.elements['updated'].text
      _title = node.elements['title'].text
      _content = node.elements['content'].text
      _link = node.elements['link'].attributes['href']
      _starttime = node.elements['gd:when'].attributes['startTime']
      _endtime = node.elements['gd:when'].attributes['endTime']
      _where = node.elements['gd:where'].attributes['valueString']
      
      ent.entry_id = _id
      ent.updated = _updated
      ent.title = _title
      ent.content = _content
      ent.link = _link
      ent.starttime = _starttime
      ent.endtime = _endtime
      ent.save
    end
  end
end


Modelクラス側にちゃんとした処理を書いて、バッチ起動クラスから叩くようにすればOKかな。

壊れてしまったredmineを復旧させられないので、暫定的に作業メモ的なエントリ。

./script/generate model CalendarEntry entry_id:string updated:datetime title:string content:string link:string starttime:datetime endtime:datetime where:string

オリジナルデータをばっさりと切り捨てているけど、必要になったら後でカラムを追加すればいいさ。

http://code.google.com/p/appengine-jruby/wiki/UseGems の説明がアップデートされてないようで、

appcfg.rb gem install

を実行しても、
Sorry, the 'appcfg.rb gem' option is deprecated.
Simply update the 'Gemfile' and run 'appcfg.rb bundle .' instead.

と言われてしまう。
Getting Startedにあるように、gemを使う時はGemfileに書けば良いみたい。

開発サーバーを起動(dev_appserver.rb を実行)しても、自動的に依存関係のあるgemをダウンロードしてきた。

土曜日にRBCのイケてるRails勉強会に参加してきました。

毎回恒例の儀式(w)をYoutubeにアップしましたよ、っと。

日帰りでの強行参加でしたが、現地スタッフの皆さんや参加していただいた皆様のおかげで大変楽しい一日を過ごすことができました。

ありがとうございました!

このアーカイブについて

このページには、過去に書かれた記事のうちRailsカテゴリに属しているものが含まれています。

前のカテゴリはPythonです。

次のカテゴリはrecipeです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 6.1.2