作りたいもの
190509 アプリの完成イメージ - エンジニアになりたい日記
190517 日記アプリの要件を再考 - エンジニアになりたい日記
本日やったこと
- 昨日のエラー解決
- Diaryモデルの作成
問題
昨日のエラー解決の続き。
DELTEリクエストを送ってsessionを消し、ユーザをログアウトさせたい。
http://localhost:3000/logout
でも、以下のエラーが出る。
Routing Error No route matches [GET] "/logout" Rails.root: /Users/bupolang/projects/cocologue
考えたこと
そもそもユーザのログイン/ログアウト機能を実装するために、ログアウトの動作確認をしたい。bootstrapのドロップダウンメニューの中にLogoutボタンがあり、そのボタンからログアウトの動作確認をしようとした。しかし、dropdownが降りてこない。そこでブラウザからlogoutの動作確認をしようとしていた。
デフォルトのブラウザからはDELETEリクエストを送付できない。今回私はブラウザから /logout
とリクエストを送れば自動的にDELETE(http verb), /logout(URI)になると思い込んでいた。しかし実際にはGET(http verb), /logout(URI)が送付されていた。なので、No route mathes [GET] /logoutとエラーが発生するのは当然だった。
もともとのdropdownが降りてこない不具合を治せば、ログアウトの動作確認ができる。そこで、そちらを修正することにした。
Rails5.系でbootstrapを有効にする
app/assets/javascript/application.jsを以下のように変更。1
//= require rails-ujs //= require turbolinks //= require jquery //= require activestorage //= require_tree .
結果、ログアウトできた。わーい😀
Diaryモデル作成
cocologue $ rails g model Diary content:text woke_up_at:datetime slept_at: datetime activity:integer mood:integer appetite:integer walking:integer us er:references invoke active_record create db/migrate/20190528092030_create_diaries.rb create app/models/diary.rb invoke test_unit create test/models/diary_test.rb create test/fixtures/diaries.yml
class CreateDiaries < ActiveRecord::Migration[5.2] def change create_table :diaries do |t| t.text :content t.datetime :woke_up_at t.datetime :slept_at t.integer :activity t.integer :mood t.integer :appetite t.integer :walking t.references :user, foreign_key: true t.timestamps end end end
cocologue $ rails db:migrate == 20190528092030 CreateDiaries: migrating =================================== = -- create_table(:diaries) -> 0.0102s == 20190528092030 CreateDiaries: migrated (0.0103s) ========================== =
次回はモデルのバリデーションから。