ドットインストールのRuby on Rails 4入門の内容を追っかけています。
ひとまず#7までのノートをアップします。
#新しいアプリを作ります
$ rails new taskapp --skip-bundle
rails new hoge --skip-bandle
railsのバージョンを指定したいときは
rails_バージョン番号_
と書けばオッケー
バージョン番号を指定しなければインストールしている最新バージョンでアプリケーションを作成します。
--skip-bandleオプションを付けて「bandle install」をスキップすることによって
トラブルを切り分けることができるようです。
--skip-bandleオプションを付けないと自動的に「bandle install」が実行されるようです。
#サーバを立ち上げます
$ cd taskapp
ディレクトリを移って
$ rails s -p $PORT -b $IP
(cloud9の場合 ローカルの場合は rails s)
立ち上げます
ブラウザで確認後ctrl+cで閉じる。そうするとまたコマンドが打てます
(cloud9だとリンクが出てきます。ローカルの人は:3000です。)
model
controller
view
の順に作ります。
#modelを作ります。
$ rails g model Project title
model名の命名規則 単数形で大文字はじまり
migration fileができるので
$ rake db:migrate
でDBに反映させます。
ここで
$ rake db migrate
なんて打つと
rake aborted!
Don't know how to build task 'migrate' (see --tasks)
(See full trace by running task with --trace)
↑こんなこと言われます。
#modelが出来たか確認するときは
$ rails db
を打つと
SQLite versionなどを表示してくれます
sqlite> .schema
と打つと
自動的にtableが出来て、フィールドが出来たよって出てきます。
titleだけつけてあげると、あとはrailsがいろいろ用意してくれます。
sqlite> .exit
で閉じることができて、またコマンドが打てるようになります。
$ rails console
作ったモデルをrubyを使いながら操作することができます。
2.3.0 :002 > p = Project.new(title:"p1")
でつくって
2.3.0 :003 > p.save
でsaveすると日時とかいろいろデータを入れてくれます。
2.3.0 :004 > p
でデータを表示してくれます
2.3.0 :008 > Project.create(title:"p2")
だと
.newと.saveを両方してくれます。
私は.newの時にtitleを入れ忘れてあとから入れなおしてから.saveしたので
便利だけど心配です・・・。
2.3.0 :009 > Project.all
で全部を表示してくれます。
2.3.0 :010 > quit
で閉じるとまたコマンドが打てます。
#コントローラーを作成します
$ rails g contoller Projects
Projectに対するコントローラーを作りたいときはProjectsと複数形にするという
お約束を守りましょう
contollerのfileと
viewのfolderができます。
#ルーティングをします。(URIの自動設定に関することなど?)
config>locales>routes.rb
に
resources :projects
を書き足します。
$ rake routes
で確認をすると
Prefix Verb URI Pattern Controller#Action
projects GET /projects(.:format) projects#index
POST /projects(.:format) projects#create
new_project GET /projects/new(.:format) projects#new
edit_project GET /projects/:id/edit(.:format) projects#edit
project GET /projects/:id(.:format) projects#show
PATCH /projects/:id(.:format) projects#update
PUT /projects/:id(.:format) projects#update
DELETE /projects/:id(.:format) projects#destroy
と出てきて、URIと書くべき(定義する)場所を教えてくれるらしいです。