Railsチュートリアル:13章(わからないとこメモです)
第13章ユーザーのマイクロポスト
13.1 Micropostモデル
親であるユーザーが破棄された場合には自動的に破棄されるようにします
はい。
13.1.1 基本的なモデル
Micropostモデルは、「特定のユーザーとマイクロポストを関連付けるuser_id属性」を持つ
このDB内の紐づけが肝だとおもい。
プロゲートのSQLでも軽くみたはず。
rails generate model Micropost content:text user:references
ポストのモデルを作成
注目はuser:references
これがあると
class Micropost < ApplicationRecord
belongs_to :user
end
belong_toがついてくる。
references型を利用すると、自動的にインデックスと外部キー参照付きのuser_idカラムが追加されUserとMicropostを関連付けする下準備をしてくれます。
なるほど。
13.1.2 Micropostのバリデーション
13.1.3 User/Micropostの関連付け
UserモデルとMicropostモデルをそれぞれ更新して、関連付ける必要がある
Micropostモデルの方では、belongs_to :userというコードが必要になるのですが、これは リスト 13.10のマイグレーションによって自動的に生成されている
Userモデルの方では、has_many :micropostsと追加する必要があります。ここは自動的に生成されないので、手動で追加
なるほど。
class Micropost < ApplicationRecord
belongs_to :user
validates :user_id, presence: true
validates :content, presence: true, length: { maximum: 140 }
13.1.4 マイクロポストを改良する
ふむ
13.2 マイクロポストを表示する
まあはい
13.2.1 マイクロポストの描画
ふむふむ
13.2.2 マイクロポストのサンプル
users = User.order(:created_at).take(6)
50.times do
content = Faker::Lorem.sentence(5)
users.each { |user| user.microposts.create!(content: content) }
end
上記を追加seedsに追加しようとするとcloud9で×マークがでる。
なんか足りないよ、と。
どうやら、このチュートリアルがかいてるendはeachにたいするもので
seedsファイル全体のendとは別らしい。たぶん。
で、
$ rails db:migrate:reset
$ rails db:seed
ここのseedは結構時間かかった。
久々にブラウザで確かめてみようとか思ってひらくと
ログインしてないのでマイクロポストが一覧で表示されるのかをみれない。
DBから落として、ログインすればいいやとか思って落とすと
パスワードが暗号化されててはいれない(当たり前だけど)
ならばと新規登録してみる。
ここでハッと気づいたのが、メール認証が必要である。
herokuにクレジット登録するのがいやでメール機能がオンになっておりません。
なので新規登録もできません。。。
終わった。。。チュートリアルの過去を探すしかない。。。
と、ここで、そういえばfixtureてきなやつをみればわかるのでは?と気づく。
michael:
name: Michael Example
email: michael@example.com
password_digest: <%= User.digest('password') %>
admin: true
activated: true
activated_at: <%= Time.zone.now %>
すみません、ここから紐解く実力はありません。。。
グーグルさんに聞いてみると同じ症状の人がいらっしゃいました。
解決しないのでログインはあきらめて進みます。
と、おもったらここはログインしてなくともみれる場所でありました。
最後に
/users/1
をつければ見れます。
13.2.3 プロフィール画面のマイクロポストをテストする
13.3 マイクロポストを操作する
13.3.1 マイクロポストのアクセス制御
13.3.2 マイクロポストを作成する
13.3.3 フィードの原型
ユーザーがフィードを持つので、feedメソッドはUserモデルで作るのが自然
13.3.4 マイクロポストを削除する
13.3.5 フィード画面のマイクロポストをテストする
13.4 マイクロポストの画像投稿
13.4.2 画像の検証
ファイルサイズに対するバリデーションはRailsの既存のオプション (presenceやlengthなど) にはありません。したがって、今回は手動でpicture_sizeという独自のバリデーションを定義
13.4.3 画像のリサイズ
13.4.4 本番環境での画像アップロード
世の中には多くのクラウドストレージサービスがありますが、今回は有名で信頼性も高いアマゾンの「Simple Storage Service (S3)25 」を使います。セットアップの手順は次のとおりです。
(1.2.1でAWSアカウントを作成していない場合) Amazon Web Servicesアカウントにサインアップする
AWS Identity and Access Management (IAM)でユーザーを作成し、AccessキーとSecretキーをメモする
AWS ConsoleからS3 bucketを作成し (bucketの名前はなんでも大丈夫です)、2.で作成したユーザーに対してRead権限とWrite権限を付与する
↑ここはとばす
あまり書くこともなかった。。。
理解できてなさ過ぎて。。。二周目に期待。
Author And Source
この問題について(Railsチュートリアル:13章(わからないとこメモです)), 我々は、より多くの情報をここで見つけました https://qiita.com/fumi1011/items/473835c4d4ab21e49301著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .