もう先々週ぐらいのことになりますが。。1日目の続き〜。 (順番違うかもしれません)
【1】 tryrubyでRubyのコードに触れる
文字列、数字、配列、ハッシュまで学習。
印象としては「短い!」「覚えやすい!(覚えることが少ない)」です。
【2】MVCの説明
railsにおけるMVCのお話。
別途、記事かきましたよ!
【3】LT
Rubyまわりではこんなイベントやってます、
初心者(珍獣さん)大歓迎♪
女子も大歓迎♪な内容で だいぶ勇気づけられましたw
楽しかった!
【4】 bentoboxでアプリ作る仕組みを知る
あとで調べてから細かく書いてみようと思いますが…
インフラ・バックエンド・フロントエンド…
それぞれ担当する箇所には何があるか〜?といったお話でした!
自分が会社で作ってたアレやコレは、こんな感じの構造で作られるのね…!
と勉強になりました。
【5】アプリの元を作る?
こちらにしたがってアプリの元?を作って設定する。
<http://guides.railsgirls.com/app/>
【6】とりあえずHerokuで公開してみる
Git を使うのだけど、自分は仕事で git 使ってたので、ついていけたと思う。
【6-1】Git のリポジトリ作る
$ cd <アプリ作ってるディレクトリ> $ git init
これで「.gitignore」とかファイルが出来たりして(たぶん)、
「ここのディレクトリはGitの管理でーす」ってなったんだと思う。
【6-2】Gemfileに追記する
アプリ作ってるディレクトリに「Gemfile」っていうのがあるので、
それをエディタで開いて 以下を追加する。
develop環境ではsqlite3使って、production環境ではpg使うって設定してるのかなあ???
gem 'sqlite3', group: :developmen gem 'pg'', group: :production
【6-3】ばんどるいんすとーる
$ bundle --without production
Gemfileを変更したのでbundle install。
production除外ってことは、pgはHerokuだけで使うのかな?
【6-4】git add して commit
$ git add . $ git commit -am "init"
ぜんぶaddするよ〜。
commit のコメントは「init」だよ〜。
【6-5】Herokuにアプリ置くよ!
とりあえずcreate
$ heroku apps:create
このとき、http://〜〜.herokuapp.com/ってURLが発行されます。
そしてgit push
$ git push heroku master
初めての時はyes/noが出る データベースのセットアップ
$ heroku run rake db:migrate
これでHerokuにアプリ置いて動くようになりました!
全世界に公開中状態!
createした時のURLにアクセスしてみよう!
【7】アプリをカスタマイズしてみる
【7-1】投稿日をいれてみる
railsに日付のapiがすでに用意されているっぽい
<%= idea.updated_at.strftime '%Y年%m/%d %T ' %>
【7-2】投稿へのタイトルに記事へのリンク貼る
記事へのリンクが、
<%= link_to 'Show', idea %>
となってたので…
(Showっていう文字列にリンクが貼ってある状態) えっとつまり?
link_toを書くとaタグでリンクにしてくれるのかなあ?
そんなわけで 記事名がでてるところを以下のように変更!…だけでOKだった!
<%= idea.name %>
↓
<%= link_to idea.name, idea %>
【7-3】indexでもshowページみたいに画像を表示したい
index.html.erbでは
<%= idea.picture %>
これが文字列状態。
「image/hoge.png」みたいになってました。
show.html.erbでは
<%= image_tag(@idea.picture_url, :width => 600) if @idea.picture.present? %>
こっちは画像が幅600pxで表示されてた。
indexを以下のように変更
<%= image_tag(idea.picture_url, :width => 100) if idea.picture.present? %>
indexでは、
<% @ideas.reverse.each do |idea| %>
の中で、 記事のタイトルやコメントや画像それぞれは「idea」っていうので指定されてた。 「@ideas」の中では「idea」にしないといけないみたい?
ここにrailsのapiあるので、自分でも調べてみよう!