2008-09-09
レイルに乗ってみた〜Rails of Ruby on Rails その05「フィードで初めて躓かなかった(つдT)」
書籍『Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~』で勉強してみた(p090〜)
フィードを配信 Atomフォーマッット追加
app/controllers/entries_controller.rbのdef indexに追加
format.atom
Atomフィードを出力するBuilderテンプレートを作成
app/views/entries/index.atom.builderを新規に作ってp091の通り書く(サンプルと同じ)
http://localhost:3000/entries.atomにアクセスして確認。(Firefoxだとブックマークに保存で確認できるっぽい)
Auto Discoveryを追加
app/views/layouts/entries.html.erbのヘッダに一行追加
<%= auto_discovery_link_tag(:atom, formatted_entries_url(:atom))%>
ブラウザで確認(http://localhost:3000/entries)
簡単だった(つдT)
レイルに乗ってみた〜Rails of Ruby on Rails その04「RMagickで躓いた(つдT)」
書籍『Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~』で勉強してみた(P83〜)
画像のアップロード FileColumnプラグイン
script/plugin install git://github.com/tekin/file_column.git
removing: /Users/username/work/locus/vendor/plugins/file_column/.git Initialized empty Git repository in /Users/username/work/locus/vendor/plugins/file_column/.git/ remote: Counting objects: 33, done. remote: Compressing objects: 100% (29/29), done. remote: Total 33 (delta 3), reused 30 (delta 3) Receiving objects: 100% (33/33), 124.74 KiB | 118 KiB/s, done. Resolving deltas: 100% (3/3), done.
- ちなみに「script/plugin install http://opensvn.csie.org/rails_file_column/ plugins/file_column/trunk」でやったら失敗した(Plugin not found: 〜)
RMagickのイントール
FileColumnを使うにはRMagickとか必要らしい。さらにそれをインストールするのにX11.appも必要みたい。
sudo port install rb-rmagick
RMagickのイントール失敗の軌跡(一部抜粋)
- 『Installing RMagick on OS X using MacPorts』さんを参考に
- sudo gem install rmagick
- ERROR: Error installing rmagick: ERROR: Failed to build gem native extension.〜
- それからsudo port install rb-rmagickしたら
- 『Please perform 'port clean ImageMagick' or specify the force option.』
- sudo port clean ImageMagick した
- MacPortsでダウンロード失敗するから、ひとつひとつ手動で...
- その他いろいろ(つдT)
MacPortsでダウンロード失敗する場合、手動で/opt/local/var/macports/distfiles/にファイルを追加して再実行
- /opt/local/var/macports/distfiles/に追加したディレクトリ一覧
- bzip2/
- automake/
- autoconf/
- ImageMagick/
- libpng/
- m4/
- jpeg/
- libxml2/
- tiff/
- fontconfig/
- help2man/
- freetype/
- libtool/
- perl5/
- ruby/
- 入れるとこが分かりにくいファイル
テーブルにカラムを追加
script/generate migration add_image_to_entry image:string
exists db/migrate create db/migrate/20080909050558_add_image_to_entry.rb Loaded suite script/generate Started Finished in 0.000456 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
ここでマイグレーション実行。
rake db:migrate
(in /Users/username/work/locus) == 20080909050558 AddImageToEntry: migrating ================================== -- add_column(:entries, :image, :string) -> 0.0223s == 20080909050558 AddImageToEntry: migrated (0.0227s) ========================= Loaded suite /opt/local/bin/rake Started Finished in 0.000673 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
モデルの修正
app/models/entry.rbに一行追加
file_column :image, :magick => {:geometry => '458x360>'}
フォーム変更
app/views/entries/_form.html.erbに修正・追加
<% form_for(@entry, :html => {:multipart => true}) do |f| %> : <p> <%= f.label :image, '画像' %> <%= f.file_field :image %> </p>
ブラウザで確認
画像を表示するようにViewを修正
app/views/entries/_entry.html.erbに追加
<%= image_tag(url_for_file_column(entry, :image)) \ if entry.image %>
ブラウザで確認してみる
メモ
えらく時間かかったなぁ...もう挫折しそう(つдT)