#13章 ユーザーのマイクロソフト
※11章アカウントの有効化
12章パスワードの再設定はパス
micropostモデルの特徴
references
型の利用
これを利用すると、自動的にインデックスと外部キー参照付きのuser_id
カラムが追加され3、UserとMicropostを関連付けする下準備をしてくれます
userとmicropostの対応関係について
micropost.rb
belong_to :user
user.rb
has_many :microposts
とかく。
@micropost = @user.microposts.build(content: "Lorem ipsum")
の下記方が正しい。
default_scope -> { order(created_at: :desc) }
これを用いて、作成順に並び替える。
ymlでテストデータ作成
resources:なんだっけ
resources :microposts, only: [:create, :destroy]
config/routes.rbに
resources :hoges
と1行を書くのみで複数のルーティングが定義されます。
ログイン要求
logged_in_user
メソッドを使って、ログインを要求
昔はuser.controllerだけだったが、micropostsでも必要なため、
application.controllerで定義
個人的なエラー
2) Error:
MicropostsControllerTest#test_should_redirect_destroy_when_not_logged_in:
NoMethodError: undefined method `micropost_path' for #<MicropostsControllerTest:0x00000000070e9438>
routes.rb にresoureces :mircropostsが抜けていた。
13.3.2不明
パーシャルは似たような機能を一つにまとめることが出来る機能
リスト13-39が大事そうかつ不明
app/views/shared/
フォルダ不明 htmlらしいが、何を表しているのか。
マイクロソフトの画像投稿
ファイルサイズに関するvalidationはrailsにはない。
mircropost.rbの
def picture_size if picture.size > 5.megabytes errors.add(:picture, "should be less than 5MB") end end
などで定義。
上記がサーバー再度の話。クライアントサイドは、jQueryなどでする
app/views/shared/_micropost_form.html.erb で管理
uploaders/picture_uploader.rb
は、画像に関する検証の定義などをするところ
※CarrierWaveを用いて、画像のリサイズなども行う
13.3.4はパス
本番環境での画像保存場所変更
AWS,herokuを使用
追加の不明点
user.microposts.build(...)
というコードは、引数で与えたユーザーに関連付けされたマイクロポストを返す