Rails Usersリソース 追記
今日はRilsの基本概念Usersリソースにふれました。
リソースっていってもかなりいろいろな理解があるので
ここでいうリソースとはデータモデルとwebインターフェイスが組み合わさったもの。
データモデルとはRDBMSに格納してあるデータと一緒ですね
データモデルをwebで取り扱えるよ的な理解でいいのかな
user用のデータモデルと組み合わさってUsersリソースみたいです
ユーザーをHTTPプロトコル経由で自由に(CURD)作成/読み出し/更新/削除できるオブジェクトとみなすことができるようになります。
前置きはこのへんで
実際作ってみます
Railsに標準装備されているscaffoldジェネレータを使って作成しました。 rails generateスクリプトにscaffoldコマンドを渡すことで生成されるみたいです。
$ rails generate scaffold User name:string email:string
scaffoldコマンドの引数には、リソース名を単数形にしたもの (この場合はUser) を使用します。
オプションのname:stringとemail:stringがRDBMSでいうカラムみたいなものなのかな
あとidパラメータはRailsによって自動的に主キーとしてデータベースに追加されるみたいです。
するとこんな感じで作成されました!
invoke active_record create db/migrate/20140526163117_create_users.rb create app/models/user.rb invoke test_unit create test/models/user_test.rb create test/fixtures/users.yml invoke resource_route route resources :users invoke jbuilder_scaffold_controller create app/controllers/users_controller.rb invoke erb create app/views/users create app/views/users/index.html.erb create app/views/users/edit.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/_form.html.erb invoke test_unit create test/controllers/users_controller_test.rb invoke helper create app/helpers/users_helper.rb invoke test_unit create test/helpers/users_helper_test.rb invoke jbuilder exist app/views/users create app/views/users/index.json.jbuilder create app/views/users/show.json.jbuilder invoke assets invoke coffee create app/assets/javascripts/users.js.coffee invoke scss create app/assets/stylesheets/users.css.scss invoke scss create app/assets/stylesheets/scaffolds.css.scss
続いてRakeを使用してデータベースをマイグレート (migrate) する必要があるみたいなので
$ bundle exec rake db:migrate == CreateUsers: migrating ================================= -- create_table(:users) -> 0.0017s == CreateUsers: migrated (0.0018s) ========================
ここでbundle execを使っているのはGem fileに対応するrakeが確実に実行されるようです。 ちなみにこのrakeはunixでいうmakeみたいな感じみたいです。
ここで
http://localhost:3000/usersにアクセスすると
これが表示されるみたいなんだけど
僕のはこれw
エラーをみてみるとrails:rootのアクセス先が違う!
以前作った方に向いていたので
一旦プロセスを殺して、新規作成の方に行き再度起動
※補足
ただ、いちいちローカルの rails サーバーを落として新しいサーバーを立ち上げるとかめんどくさいってとき
デフォルトの起動ポートを変更
通常はlocalhost:3000
require 'rails/commands/server' module Rails class Server def default_options super.merge({ :Port => 4000 }) end end end
これをconfig/boot.rbに追記するとlocalhost:4000 で立ち上がります ちなみに今回だけならこれで立ち上がります
rails s --port 4000
補足でした
ここでnewページを表示してユーザーを作成します!
こんな感じ
URLアクションはいろいろあるので参考までに↓ 拾ってきたやつだけど
今日は以上ですw