Hatena::Diary

牌語備忘録 このページをアンテナに追加 RSSフィード

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

f:id:CortYuming:20080909191122p:image


簡単だった(つдT)



レイルに乗ってみた〜Rails of Ruby on Rails その04「RMagickで躓いた(つдT)」

レイルに乗ってみた〜 目次

書籍『Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~』で勉強してみた(P83〜)

画像のアップロード FileColumnプラグイン

gitからインストール

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.

RMagickのイントール

FileColumnを使うにはRMagickとか必要らしい。さらにそれをインストールするのにX11.appも必要みたい。

  1. MacOSX10.4のインストールディスクにあるOptional Installs.mpkgでX11.appだけインストール
  2. MacPortsで「rb-rmagick」インスコ(かなり時間かかる)
sudo port install rb-rmagick
RMagickのイントール失敗の軌跡(一部抜粋)
  1. Installing RMagick on OS X using MacPorts』さんを参考に
  2. sudo gem install rmagick
    • ERROR: Error installing rmagick: ERROR: Failed to build gem native extension.〜
  3. それからsudo port install rb-rmagickしたら
    • 『Please perform 'port clean ImageMagick' or specify the force option.』
    • sudo port clean ImageMagick した
    • MacPortsでダウンロード失敗するから、ひとつひとつ手動で...
  4. その他いろいろ(つд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/
  • 入れるとこが分かりにくいファイル
    • /opt/local/var/macports/distfiles/ruby/RMagick-2.5.1.tar.bz2
    • /opt/local/var/macports/distfiles/perl5/gettext-1.05.tar.gz

テーブルにカラムを追加

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>

ブラウザで確認

f:id:CortYuming:20080909145928p:image

画像を表示するようにViewを修正

app/views/entries/_entry.html.erbに追加

  <%= image_tag(url_for_file_column(entry, :image)) \
      if entry.image %>

ブラウザで確認してみる
f:id:CortYuming:20080909145927p:image
f:id:CortYuming:20080909145929p:image

メモ

  • 毎回インストール関係で躓いてる気がする...
  • 表示されたものはすべて目を通すべきかも
  • 今のところRubyはほとんど関係ない感じ
  • Railsググると情報たくさん出てくる。これ重要。

えらく時間かかったなぁ...もう挫折しそう(つдT)