LoginSignup
0
0

More than 1 year has passed since last update.

railsチュートリアルをなるべく嚙み砕く 2章

Posted at

#railsチュートリアル第2章ですね
この章はscaffoldを使って簡単なアプリを作り出すようです

2.1.1

ユーザーのモデル設計です。ユーザーを必要な要素を簡単に書き出すと

user
id integer
name string
email string

ユーザーを識別するための一意なidと名前、メールアドレスですね。
一意というのは他に無い、唯一ということです。

2.1.2

マイクロポストのモデル設計です。 マイクロポストというのはTwitterのツイートのことですね。つまりはユーザーがする投稿です。

microposts
id integer
content string
user_id integer

マイクロポストのid これはユーザーのidと同じで一意であることを表しています。そして文章のcontentと、どの ユーザーが投稿したかを表すuser_idです

2.2

UsersリソースとHTTPプロトコルという言葉が出てきましたね。
Usersリソースとは Userを操作する対象として見たものです。つまりはUserをこれからデータとして扱いますよ~って意味ですね
https://qiita.com/katsutakashima/items/47977b9e7d18cf816734
こちらの記事がわかりやすいと思います。

HTTPプロトコル
プロトコルとは約束ごと、決まり事
HTTPはHyperText Transfer Protocol の略です。クライアントとサーバーの間でハイパーテキストを転送するためのプロトコルです。色々調べれば出てくると思いますがサイトを貼っておきますね。

https://www.web-knowledge-info.com/wp/web_basic_knowledge4/#1HTTP%E3%81%A8%E3%81%AF
https://wa3.i-3-i.info/word165.html
https://atmarkit.itmedia.co.jp/ait/articles/1703/29/news045.html

次に rails generate scaffold User name:string email:string

generateは生み出すという意味ですね
scaffoldを使って 2.1.1のUserモデルを作り出しています
idは勝手につくので書かなくて大丈夫です。

その後 
rails db:migrate をします。
これはデータベースに先ほど作った scaffoldのUserモデルを反映させるということです。migrateは移行、移動という意味で
私はデータベースを新しい方へ移動させるイメージを勝手に持っています

最後に rails server でサーバーを実行します。 rails sでも同じ意味です。

2.2.1

index show new edit など様々な単語が出てきますね
index は索引。私は全体を見るイメージを持っています
show  は見る、表す。これは自分自身を表すイメージです
new は新しい。  新しく何かを作ります
edit は編集。 自分のプロフィールを編集します
destroy は破壊。 削除ですね。

rails s の後に色々と文字が出てきますが、 http://127.0.0.1:3000をコピーしてブラウザへ貼り付けてください。その後ろに /users を加えるとindexアクションが表示されます。
http://127.0.0.1:3000/index

上記のようにしてください。

2.2.2

ここはチュートリアルの説明で十分だと思います

その後の
root 'users#index'
は 最初に来るページをusers#index アクションに割り当てるという意味です。
つまりは http://127.0.0.1:3000のurlをクリックしたら最初にusers#indexのページが表示されます。

2.3

やっていることはuserの時と同じですね。

2.3.2

validates :content, length: {maximum: 140}

validates は検証という意味です 
contentの長さが最大で140字までなのか検証しています

2.3.3

app/models/user.rb
class User < ApplicationRecord
has_many :microposts
end
app/models/micropost.rb
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: { maximum: 140 }
end

has_many はたくさん持っている つまり投稿をたくさんする
belogns_toは所属している つまりuserがしているもの
ということです。
関連付けることによって

first_user.microposts
最初のユーザーのマイクロポストを表示する
というコマンドが動作します
関連付けていなければ
first_userまでは動作しますが micropostsはエラーが出てしまいますね

###演習

1
<%= @user.microposts.first.content %>

2
presenceは存在ですね
割愛します

3

app/models/user.rb
class User < ApplicationRecord
  has_many :microposts
  validates :name, presence: true
  validates :email, presence: true
end

他はチュートリアルをしっかりと読めば大丈夫だと思います。
継承は他のクラスの物も使えるよ という機能です

ではお疲れさまでした!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0