この記事を書いた人
machida

KRAYさんのブログの大人気記事「1時間でツイッターサービスを作ろう!」にデザイナーも挑戦してみようという今回の企画、「デザイナーも1時間でツイッターサービスを作ろう」いよいよ今回が最終回です。

今回は機能を実装してHerokuにデプロイ。Herokuにデプロイは今まで散々やってきましたが、Railsに機能を実装するのは初挑戦。今回は深いことは考えず、記事をひたすら記事をなぞっていきます。この後、ゆっくり本でも買ってRailsの勉強をしたとき、今回の経験が役に立てば、くらいの感じでやっていきたいと思います。

偉大なるHelloWorldボタンの実装

ボタンを押すと「偉大なるHelloWorld」というつぶやきができる機能の実装。いよいよプログラミングがさっぱりの僕にとって厳しい領域。…というわけで元記事にあるまま進みます。

$ script/generate controller messages index

ターミナル — bash — 80×24

ここで、コントローラとビューのファイルが生成されるのですが、

コントローラとは、ユーザの入力(通常イベントとして通知される)に対して応答し、それを処理する要素である(by wikipedia)、とのことで、ボタンを押したときの動きなんかを設定するファイルだと思われます。

ビューとは見た目のテンプレート部分みたいなもので、WordPressで言うところのThemeみたいなものです。余談ですが、Railsアプリでデザインを入れる仕事をやるとき、デザイナーの僕はここばっかり触ってます。

      exists  app/controllers/
      exists  app/helpers/
      create  app/views/messages
      exists  test/functional/
      create  test/unit/helpers/
      create  app/controllers/messages_controller.rb
      create  test/functional/messages_controller_test.rb
      create  app/helpers/messages_helper.rb
      create  test/unit/helpers/messages_helper_test.rb
      create  app/views/messages/index.html.erb

こんなメッセージが表示されました。「create」は「作る」という意味ですが、「exists」は?というと、「存在する」という意味です。「exists」の方は無ければ作ったけど最初からあったよ、っていうメッセージですね。まぁ、これだけのファイルが生成されたということです。

続いてURLのパスの設定。今回はページ遷移なしの1ページだけのシンプルなWebアプリなので、「/」のときに表示されるファイルの設定だけ。元記事に書いてあるまま、「config/routes.rb」を編集。

config

ActionController::Routing::Routes.draw do |map|
  # ここから追加
  map.resources :messages,:only => [:index, :create]
  map.root :controller => 'messages', :action => 'index'
  # ここまで追加
end

書いてあるまま、

routes.rb-1

routes.rb

に、中身を上書き。

アプリケーションに設定されたURLパスを確認

では、ちゃんと設定されているかの確認。元記事にあるままコマンドを打ってみます。

rake routes

こう出たらOK。

         login        /login                  {:action=>"new", :controller=>"sessions"}
        logout        /logout                 {:action=>"destroy", :controller=>"sessions"}
   new_session GET    /session/new(.:format)  {:action=>"new", :controller=>"sessions"}
  edit_session GET    /session/edit(.:format) {:action=>"edit", :controller=>"sessions"}
       session GET    /session(.:format)      {:action=>"show", :controller=>"sessions"}
               PUT    /session(.:format)      {:action=>"update", :controller=>"sessions"}
               DELETE /session(.:format)      {:action=>"destroy", :controller=>"sessions"}
               POST   /session(.:format)      {:action=>"create", :controller=>"sessions"}
oauth_callback        /oauth_callback         {:action=>"oauth_callback", :controller=>"sessions"}
      messages GET    /messages(.:format)     {:action=>"index", :controller=>"messages"}
               POST   /messages(.:format)     {:action=>"create", :controller=>"messages"}
          root        /                       {:action=>"index", :controller=>"messages"}

ターミナル — bash — 91×27

出来た!

加えて、「/login」や「/logout」というパスが存在していますね。これらはtwitter-authプラグインが自動生成してくれているパスで、「/login」にアクセスするだけで、ツイッターのOAuth認証を実行できるようになっています。便利ですね。

なるほど、前回苦労して入れた twitter-auth が twitter 認証などの面倒な処理のプログラムを自動で作ってくれたんですね。

コントローラーの処理を実装

app/controllers/messages_controller.rbを編集します。

controllers

元記事にあるまま、

class MessagesController < ApplicationController
  def index
  end
  # ここから追加
  def create
    if current_user.twitter.post('/statuses/update.json', :status => "偉大なるHelloWorld")
      flash[:success] = "おめでとう!偉大なるHelloWorldは成功した。"
      redirect_to root_path
    else
      flash[:error] = "残念だが、偉大なるHelloWorldは失敗に終わった。"
      render :action => 'index'
    end
  end
  # ここまで追加
end

を記入します。

messages_controller.rb

今気づいたんですが、今回はKodというエディターを使っているのですが、このエディター、背景が黒いのでターミナルと混同しそうですね。ブログの記事には向かないです。ちょっと失敗でした。

さて、今コピペしたところを見てみると、「偉大なるHelloWorld」という文字列がTwitterにpostされて、「おめでとう!偉大なるHelloWorldは成功した。」というメッセージが表示される。エラーが起きると、「残念だが、偉大なるHelloWorldは失敗に終わった。」というメッセージが表示される。というのが何となくわかりますね。完成したら、次はこのメッセージを変えてみるのも面白そうです。

ビュー(app/views/messages/index.html.erb)の編集

では、次は「view」の編集です。ここは僕がいつもRailsの仕事で触ってるファイル。ブラウザでアクセスしたときにユーザーが見る、見た目の部分です。Railsでは「public」フォルダにjavascriptや画像ファイル、cssファイルがあるので、Railsの仕事を受けたデザイナーは、これからいじる「view」と「public」が自分の領域になります。

では元記事の通りにやってみましょう。

<% if logged_in? %>
  <% form_tag messages_path do %>
    <%= submit_tag '偉大なるHelloWorldをツイートする' %>
  <% end %>
<% else %>
  <%= link_to 'ログインする', login_path %>
<% end %>

これを「app/views/messages/index.html.erb」にコピペ。

messages

エディターを「mi」に変えてみました。

index.html.erb

全体のレイアウトファイル(app/views/layouts/application.html.erb)を作成

次の作業もviewです。Railsの場合、「app/views/layouts/application.html.erb」っていうファイルが必ず(多分)あって、デザイナーは必ずここをいじることになります。このファイルは全体の枠組みのファイルで、WordPressでいうところの「header.php」、「sidebar.php」、「footer.php」がセットになったもの、って感じです。

これからコピペする以下のコードに「<%= yield %>」という部分がありますが、ここに先ほど作った「app/views/messages/index.html.erb」が表示されます。つまり、枠は「app/views/layouts/application.html.erb」、中身は「app/views/messages/index.html.erb」となります。

今回はペラ1のシンプルなWebサービスですが、複雑なものだと、「app/views/layouts/application.html.erb」の枠の中に色んな中身がそれぞれのページごとに入ってきます。例えば、トップページのときの中身、ログインフォームのときの中身、記事を投稿するフォームの中身、記事の一覧を表示する中身...といった感じです。

おっと、この部分を<pre><code>で書こうとしたら表示されない、というLokkaのバグを発見。kuroigamenではお馴染みのGithubのメモ帳サービス「gist」を使って貼りつけました。

ちなみに、「<%= msg %>」に、「flash[:success] = "おめでとう!偉大なるHelloWorldは成功した。"」、「flash[:error] = "残念だが、偉大なるHelloWorldは失敗に終わった。"」のメッセージが表示されるみたいです。

application.html.erb

layouts

作りました。

これでアプリは完成!

公開

ついに最後の作業です。今完成したアプリをkuroigamenでは毎度おなじみのHerokuにデプロイします。

.gemsファイルの用意

Herokuにデプロイするときに、このアプリはこのgem(Rubyのプラグイン)が必要だから入れておいてね、とHerokuに言うメッセージのようなファイルを作ります。それが「.gem」です。

元記事に書いてあるまま「.gems」ファイルを作りましょう。プロジェクトの一番上の階層に作ります。

oauth
ezcrypto
json

「ezcrypto」、「json」ってGemは前回、これがGemsetに入ってなくてハマったやつですね...

kuroigamen_hello_world

作りました。

デプロイ

ついに最後の作業。git で色々やって完了です。では、元記事を見てみましょう。

% git add .
% git commit -m 'finish!'
% git push heroku master
% heroku rake db:migrate

まずは、作ったアプリを「git add」で git のバージョン管理におきます。

それをコミットします(「git commit -m 'finish!'」)。

そのコミットした状態をherokuに送ります。(「git push heroku master」)

「heroku rake db:migrate」で heroku の DB のセットアップ

おっと、これで終わりかと思いきや、「heroku rake db:migrate」で上手くかない!

Missing the Rails 2.3.8 gem. Please `gem install -v=2.3.8 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
(in /app)

...というメッセージ。

Railsのバージョン2.3.8がないよ、って言ってますね。元記事では2.3.8が最新だったのですが、今のHerokuのRailsではもっとバージョンが上がっていて、「.gem」に2.3.8を指定しないといけないのか?と予想を立てて、とりあえずやってみます。

ここに「.gem」のバージョンも含めた書き方が載ってました。

rails --version 2.3.8

を「.gem」に追加。

.gems

この変更をコミット。

git commit -a -m 'added rails'

※今回は変更があったファイルの変更を自動的にコミットするっていう「-a」オプションが付きます。

もう一度herokuにpush。

git push heroku master

DBの設定に再挑戦。

heroku rake db:migrate

ターミナル — bash — 91×27-1

成功した!

ちゃんと出来てるかアクセスしてみます。僕のはここ

まずはトップページ、ログイン前。

偉大なるツイッターアプリ

ログインをクリックすると...おおっ!アプリケーション認証画面。

Twitter _ アプリケーション認証

ログインをすると、「偉大なるHelloWorldをツイートする」ボタンが出現。

偉大なるツイッターアプリ-1

では、ボタンをクリック...成功のメッセージが出現!

偉大なるツイッターアプリ-2

では、Tweetされてるかチェック。

Twitter _ @machida_ 偉大なるHelloWorld ...

出来たー!

最後に

以上で「デザイナーも1時間でツイッターサービスを作ろう!」は終了です。それにしても、この三回に渡って書いた連載ですが、第二回の設定編を記事を書きながら作業をしていたらエラーが出てしまい上手くいかずハマリにハマって、今回は無かったことにしようかな...と思いかけたとき、第一回の準備編の記事にはてぶがたくさん付いてしまい、無かったことに出来ない状況に追い込まれてしまいました。試行錯誤の連続でしたが、無事アプリが公開できてほっとしています。

この元記事を書いたfunc09さん、元記事があるサイトのKRAYさん、勝手に記事をコピペしまくってしまってすいません。

この記事を書いた人
machida

前回の続きです。前回は元記事(1時間でツイッターサービスを作ろう!)のRails環境を自分のMac内に構築するところまででした。今回は外部サービスの登録と、開発の始めのところまで。今回も長い記事になりそうなので、早速本題へ(っていうかこんなペースでは1時間でつくるなんて無理!)。

まずは「cd」コマンドを使って、「Sites/kuroigamen_hello_world」の場所からスタートしてください。

Gitのリポジトリを初期化

今回もHerokuにデプロイしてWebアプリを公開するので、バージョン管理はGit。今作ってる「kuroigamen_hello_world」もGitでバージョン管理をします。コマンドは、

$ git init

これだけ。

バージョン管理したくないファイルを無視ファイルに定義

続いて、Gitの管理下に置きたくないファイルを定義します。例えば、Macの場合必ず出てきてしまう「.DS_Store」っていうファイルがありますよね。この不要なファイルまでリポジトリに入ってくるのは気持ち悪い。他にも、一時的なファイルを置くフォルダなどをGitの管理下から外します。これは元記事のまま、まずは「.gitignore」というファイルを作ります。今回は黒い画面でファイルを作ってみましょう。ずっと前にやった「touch」コマンド。

$ touch .gitignore

これで「.gitignore」というファイルが出来ました。このファイルに、

.DS_Store
log/*.log
tmp/**/*
db/*.sqlite3
db/schema.rb

と、書き込みます。

黒い画面でエディタを使ってみる

おまけで、黒い画面でのファイルへの書き込み方法を紹介。まずは、viという黒い画面用のエディタでファイルを開きます。コマンドは「vi」、引数に開きたいファイル名を入力します。

$ vi .gitignore

そこに、

.DS_Store
log/*.log
tmp/**/*
db/*.sqlite3
db/schema.rb

をコピペ。

続いて、「esc」キーを押す。

「:w」と打って保存完了。

最後に「:q」と打ってエディタを閉じる。

黒い画面のエディタって面倒くせー。おまけで黒い画面でのエディタの使い方を紹介しましたが、この作業はFinderから開いて適当なエディタで編集で全然OKです。

サービスを動かすサーバ、Herokuの設定。

次はKUROIGAMENではお馴染みのRuby版PaaS「Heroku(へロク)」の設定です。これは以前にもここで説明をさせていただきましたので、今回初めてHerokuを使うってかたはこちらをご覧ください。こちらの記事は無料でHerokuに静的ページを置くっていうことを実際にやってみるという記事なのですが、是非これにも挑戦していただきたいです。

  • herokuの会員登録
  • herokuコマンドのインストール

※今回は新たにGemsetを作ってるので前にHerokuを使ったことがある方も、またherokuコマンドをインストール必要があります。インストールは、

$ gem install heroku

上記が完了しましたら、続いて今回作るアプリをHerokuに登録します。Herokuに今回作るアプリのリポジトリ置き場を設置するって作業です。会員登録はブラウザからなのに、リポジトリ置き場の登録は黒い画面(ターミナル)からコマンドを打って行います。

今回「kuroigamen-hello-world」という名前で登録をしますが(Herokuでは「_」を使うことが出来ないので「-」に変えました)、Heroku上には同じ名前をアプリを作ることができないので、これを見ながらやっている方は別の名前で登録をしてください。

$ heroku create kuroigamen-hello-world

すると、

Creating kuroigamen-hello-world... done
http://kuroigamen-hello-world.heroku.com/ | git@heroku.com:kuroigamen-hello-world.git

というメッセージが表示されて完了したっぽい。

Herokuに行ってリポジトリ置き場が登録できてるか確認してみます。HerokuのMy Appsへ行って確認。

ちゃんとできてました。

ツイッターアプリ登録

元記事に書いてあるまま、次の手順、ツイッターアプリ登録の作業に移ります。

登録はこちらから。要Twitterアカウント。

ここで元記事にある「ポイントになるのは・・」に注目。

* アプリケーションの種類:ブラウザアプリケーション
* コールバックURL:http://twitter-helloworld.heroku.com/oauth_callback
* Default Access type:Read & Write

とすることです。

コールバックURLは、自分のサービスURLに「/oauth_callback」を追加したものを設定してください。

この点に注意して入力します。

ついでに、Herokuを初めての方へ。

先ほど確認したHerokuのMy Appsに表示されてるアプリ名をクリックすると、

こんな画面が表示されます。

ここにある「Heroku URL http://kuroigamen-hello-world.heroku.com」っていうところがアプリを公開するURLになります。

元記事には、

コールバックURLは、自分のサービスURLに「/oauth_callback」を追加したものを設定してください。

とありますので、今回の僕の場合は「コールバックURL」は「http://kuroigamen-hello-world.heroku.com/oauth_callback」になります。

入力した内容は以下。

New Twitter Application | dev.twitter.com

黒い画面ハローワールド Settings | dev.twitter.com-1

登録が済んだら、「Consumer key」と「Consumer secret」をメモっておきます。

以上でツイッターアプリ登録は完了。

開発

いよいよ開発です。開発…すいません、全然Railsのことを知らないので、ここからは元記事に書いてあることをただなぞっていく作業になってしまいます。

では、「kuroigamen_hello_world」の場所から作業スタート。

public/index.htmlを削除する

書いてある通りにやってみます。ファイルの削除のコマンドは「rm」。リムーブの略ですね。ただ、せっかくなので捨てる前にこのファイルを開いてみます。

Ruby on Rails_ Welcome aboard

なるほど、Railsでアプリを開発する手順が書かれてますね。「index.html」を削除することも手順「2」に含まれています。ついでに、手順1は「Use script/generate to create your models and controllers」、手順3は「Create your database」。これらの作業も後でやることになりそうな予感。

では、「rm」コマンドで「index.html」を削除。

$ rm public/index.html

ツイッター認証

どんどん先に進みたいと思います。元記事によると、「twitter-auth(http://github.com/mbleigh/twitter-auth)」というプラグインを使うことで、面倒そうなTwitterとの連携部分の機能の実装をサクっと完了させられるそうです。Railsはこういった便利なプラグインがたくさんあるところが大きな魅力の一つだそうです。デザイナーの僕からすると、「WordPressみたいなものかー」、という感じ。

この元記事では、「script/plugin install」というコマンドが書いてあるのですが、KUROIGAMENではRubyのGemという機能を使って、「gem install」っていうコマンドを使ってやってます。その方法は比較的新しいやり方のようで、元記事にある「script/plugin install」はちょっと古いやり方です。ググッてみると、Gemを使って「twitter-auth」をインストールする方法もちらほらあったのですが、今回は何か起こったら怖いので元記事のままやってみましょう。

$ script/plugin install git://github.com/mbleigh/twitter-auth.git

次に、それを使うコマンド

$ script/generate twitter_auth

ターミナル — bash — 97×44

ウギャー、ここでエラー発生。あとは元記事をなぞるだけで成功すると思ったのに…。

エラーメッセージを見てみると、

no such file to load -- json (MissingSourceFile)

という一文が。もう勘以外のなんでもないですが、jsonってやつが無いのがエラーの原因?と思って、

$ gem install jason

をやってみました。

もう一回、

$ script/generate twitter_auth

に挑戦。

また、エラー。でも、エラーメッセージが変わってる!これはいけそうな予感。今度のエラーメッセージは、

no such file to load -- oauth (MissingSourceFile)

なら、今度は

$ gem install oauth

またまた

$ script/generate twitter_auth

またエラーが出たけど、さらに別のメッセージが出てきました。

Missing these required gems:
ezcrypto

「ezcrypto」ってGemを入れてくれよ、って言ってますね。今度のエラーメッセージはわかりやすい。じゃあ、入れてあげましょうと、

$ gem install ezcrypto

次こそはいけるか?!

$ script/generate twitter_auth

ターミナル — bash — 97×44-1

できた!(実はこのエラーを解決するのに一日かかってます…)

一応これを読んでるかたが確認できるように、Gemsetの中に入ってるGemの一覧を表示しておきたいと思います。もし上手くいかなかった方は見比べてみてください。Gemの一覧を表示するコマンドは、

$ gem list

Gemsetの中のGemは、

actionmailer (2.3.8)
actionpack (2.3.8)
activerecord (2.3.8)
activeresource (2.3.8)
activesupport (2.3.8)
configuration (1.2.0)
ezcrypto (0.7.2)
heroku (2.0.4)
json (1.5.1)
launchy (0.4.0)
mime-types (1.16)
oauth (0.4.4)
rack (1.1.2)
rails (2.3.8)
rake (0.8.7)
rest-client (1.6.1)
term-ansicolor (1.0.5)

ちゃんと「twitter_auth」が動いたかを確認するために、

$ rake routes

と、打ってみましょう。

login        /login                             {:controller=>"sessions", :action=>"new"}
logout        /logout                            {:controller=>"sessions", :action=>"destroy"}
new_session GET    /session/new(.:format)             {:controller=>"sessions", :action=>"new"}
edit_session GET    /session/edit(.:format)            {:controller=>"sessions", :action=>"edit"}
session GET    /session(.:format)                 {:controller=>"sessions", :action=>"show"}
PUT    /session(.:format)                 {:controller=>"sessions", :action=>"update"}
DELETE /session(.:format)                 {:controller=>"sessions", :action=>"destroy"}
POST   /session(.:format)                 {:controller=>"sessions", :action=>"create"}
oauth_callback        /oauth_callback                    {:controller=>"sessions", :action=>"oauth_callback"}
/:controller/:action/:id           
/:controller/:action/:id(.:format) 

と、出ればOKです。これはTwitter認証でログインをしたりなど、面倒なところを「twitter_auth」がやってくれた、っていう証です。

config/twitter_auth.yml というファイルの書き換え

では、次に設定ファイルの書き換えを行います。先ほどのツイッターアプリ登録の内容を設定ファイルに入力する作業です。「config/twitter_auth.yml 」を書き換えます。

config

今回は黒い画面ではなく、Finderからファイルをところまで行ってエディタで編集してしまいました。

twitter_auth.yml - _Users_machida_Sites_kuroigamen_hello_world_config

上の画像の下線部分にツイッターアプリ登録した際に得た「Consumer key」、「Consumer secret」をそれぞれ入力します。

長くなってしまったので今回はここまで。いよいよ次回は最終回です。それにしても、@func09さんの記事をそのままやってるだけのこの記事に結構はてブがついてしまって申し訳ない。KRAYさん、勝手にこんな記事を書いてしまってすいません…。

この記事を書いた人
machida

こんにちは、町田です。

先日のCSS Niteにお越しいただいた皆様、本当にありがとうございました。

CSS Niteの発表とほぼ同じくらいの絶妙なタイミングでAmazonのサーバにトラブルが発生し、このサイトも影響を受けて結構長い時間アクセスが出来ませんでしたが、どうにか無事復旧されてほっとしているところです。KUROIGAMENでよく出てくるホスティングサービス「Heroku(へロク)」ってAmazonのサーバで動いているんですよね。KUROIGAMEN自体もHerokuで動かしてます。

これからも黒い画面で何かやって上手くできたら、その情報を皆様にもシェアできるように頑張って記事を書いていきたいと思ってますので、宜しくお願い致します。

あのすごい数の「はてブ」がついた伝説の記事に挑戦。

今回は以前ここで紹介させていただきましたHappy1000Days!の作者@func09さんが以前在籍していた株式会社クレイさんのサイトのブログに書いた記事、「1時間でツイッターサービスを作ろう!」に挑戦したいと思います。この記事、なんだかものすごい数のはてブ数がついているので、KUROIGAMENもその人気にあやかってやろう、という汚い魂胆。

それにしても、KRAYさんのサイトは見た目は綺麗だし、ブログの内容も充実しているし、本当素敵なサイト。特に僕は「考える」のページがコンパクトに大事なことがまとめられててお気に入りです。

KRAY - みんなで考え、作り、価値を生み出す

今回はGithubからアプリのリポジトリをcloneしてそれをローカルで立ち上げる、それをHerokuに置いて公開する、という流れではなく、ゼロから自分でアプリを作り、それをHerokuに置いて公開する、という初のWebアプリ作成に挑戦です。今回も「言語はRuby」、「サーバはHeroku」、KUROIGAMENではお馴染みの組み合わせ(そろそろPython、GAEなんかにも挑戦したいところ…誰か教えて!)。

今回つくるアプリ「偉大なるHello World」

この記事では1時間で「偉大なるHello World」というWebアプリをつくる手順が説明されています。まずは今回挑戦するそのアプリの説明を。

アプリのページに行くとログインへのリンクが表示されます。

偉大なるツイッターアプリ

ログインはTwitterのOAuthという機能を使って、Twitterアカウントでログインします。

Twitter

ログインをすると、「偉大なるHelloWorldをツイートする」というボタンが出現。

偉大なるツイッターアプリ-1

ボタンをクリックすると、「おめでとう!偉大なるHelloWorldは成功した。」というメッセージ。

偉大なるツイッターアプリ-2

Twitterを見てみると…「偉大なるHelloWorld」とツイートされてる!

Twitter _ @machida_ 偉大なるHelloWorld ...

という、これだけのシンプルなWebアプリ。

開発環境を準備。

「1時間でツイッターサービスを作ろう!」の記事が公開されたのは2010年07月23日。まだ一年も経っていないのですが、Railsが当時のバージョンと今のバージョンとで違っています。Railsはバージョンが変わると結構仕様が変わるという場合によっては厄介なフレームワーク(古いものは切り捨て、新しい要素を柔軟に吸収するため、現在でも素敵で便利なフレームワークの座を守り続けています)。Railsのバージョンが原因でうまくいかない、ってことがないように、RVMを使って、この記事と同じ環境をつくるところからスタートしたいと思います。

以前KUROIGAMENで説明したRVMのセッティングはこちら

今回つくる「偉大なるHello World」の環境について書いてあるサイトはないものかとググってみたところ、ちょうどその情報をまとめて書いてくれてる記事を発見!さすが人気記事。

偉大なるハローワールドをローカルで動かす。

この記事を書いていてくれた@zonoiseさん、ありがとうございます!

この記事の「偉大なるハローワールドを作成する際にRails初めての人がハマりそうなところ。」の部分に注目。

偉大なるハローワールドを作成する際にRails初めての人がハマりそうなところ。

Rails入っていなかったら、バージョン指定してインストールする。

gem install rails -v 2.3.8

railsのバージョンを指定して、アプリケーションを作成するには

rails _2.3.8_ app_name

それと、Rubyのバージョンもチェック。

Ruby version              1.8.7 (i686-linux)

開発環境にまとめると、

  • Rubyのバージョンは1.8.7なので、RVMを使ってRuby1.8.7を使うように設定。
  • Railsのバージョンは2.3.8なので、「偉大なるHelloWorld」用にGem set をつくる。

では、早速やってみたいと思います。

RVMでRuby1.8.7を使う設定

先日のCSS Niteで黒い画面の説明があったところなので、今回は丁寧にコマンド一個一個から説明していきたいと思います。

RVMを使ってRuby1.8.7を使う設定。まずは「rvm」コマンドに引数「use」と「バージョン」を渡します。

$ rvm use 1.8.7

もし、1.8.7が入っていない場合は、

$ rvm install 1.8.7

コマンドを打ってインストールをしてから。

「rvm use」に成功すると、

Using /Users/machida/.rvm/gems/ruby-1.8.7-p334

というメッセージが表示されます(※-p334の数字は異なる場合があります)。いつも成功しても何も言ってくれない黒い画面ですが、RVMのときはちょっと優しいですね。

これでRVMを使ってRuby1.8.7を使う設定は完了。

「kuroigamen_hello_world」用のGemsetを作成

続いて、RVMを使って、「kuroigamen_hello_world」用のGemsetを作成します。今回は「kuroigamen_hello_world」用に「kuroigamen_hello_world」という名前のGemsetを作成。

$ rvm gemset create kuroigamen_hello_world

成功すると、

'kuroigamen_hello_world' gemset created (/Users/machida/.rvm/gems/ruby-1.8.7-p334@kuroigamen_hello_world).

というメッセージが表示されます(※こちらも-p334の数字は異なる場合があります)

作成したGemsetを使う設定をします。さっきのコマンドの「create」を「use」に変えるだけ。

$ rvm gemset use kuroigamen_hello_world

成功すると、

Now using gemset 'kuroigamen_hello_world'

というメッセージが表示されます。

これで「kuroigamen_hello_world」用のGemsetを作成は完了。

Gemset「kuroigamen_hello_world」にRailsのバージョン2.3.8をインストール

続いて、作成したGemset「kuroigamen_hello_world」にRailsのバージョン2.3.8をインストール。依存する色んなGemが入るので結構時間がかかります。

gem install rails -v 2.3.8

Railsのバージョン2.3.8をインストール完了。

プロジェクト「kuroigamen_hello_world」をRailsで作成

Railsのバージョン2.3.8のインストールが完了したら「/Sites」に移動します。なんで「/Sites」に移動かと言うと、僕の場合、アプリをつくる場所はMacの「/Sites」、Finderで見ると「サイト」というフォルダ名で表示されてるディレクトリの中を指定しているからです。今回もそのディレクトリに「kuroigamen_hello_world」プロジェクトを置いて開発を進めます。移動は「cd」コマンド。

$ cd Sites/

続いて、このディレクトリに「kuroigamen_hello_world」というRailsのプロジェクトをつくります。コマンドは「rails」で、引数にプロジェクト名「kuroigamen_hello_world」という文字列を渡します。ここで念のため、使うRailsのバージョンも指定しておきたいので、「_2.3.8_」というバージョンの文字列をrailsコマンドとプロジェクト名の間にはさみます(GemsetにはRailsバージョン2.3.8しか入っていないので必要はないのですが、念のため)。

$ rails _2.3.8_ kuroigamen_hello_world

ちゃんとRailsプロジェクトのディレクトリ「kuroigamen_hello_worl」が出来ているかの確認。「ls」コマンドを使って、「/Sites」の中身をリストで黒い画面に表示してみましょう。

$ ls

「kuroigamen_hello_world」出ました(※「/Sites」ディレクトリは色々お仕事関係のリポジトリが入ってるのでぼかしを入れさせていただきました)。

ターミナル-—-bash-—-80×24-1

「kuroigamen_hello_world」ディレクトリに移動。使うコマンドは「cd」。

$ cd kuroigamen_hello_world

以上で準備は完了。とりあえず今回はここまで。

ここまで出来たら、あとは元記事の手順通りに進めれば出来ますので、気の早いかたは是非挑戦してみてください。

最新の実績

  • Remember The Wordpress
  • happy1000days
  • happy1000days
  • happy1000days

こちらも合わせてどうぞ

  • webデザイナーの為の「本当は怖くない」“黒い画面”入門

アフィリエイト