ActiveModel::MissingAttributeError in ProfilesController#update

Carrierwaveを使ったプロフィールの更新をしようとしたら、以下のエラーが表示された。 Image from Gyazo

原因 解決

can't write unknown attribute avatorと記載されており、モデルはavatarと記載したので、スペルミスと思った。

create_table "users", force: :cascade do |t|
    t.string "first_name", null: false
    t.string "last_name", null: false
    t.string "email", null: false
    t.string "crypted_password"
    t.string "salt"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "avatar"
    t.index ["email"], name: "index_users_on_email", unique: true
  end

あれ、ちゃんとavatarになってる...


form_withも見てみよう profile/edit.html.erb

 <div class="field">
      <%= f.label :avatar, User.human_attribute_name(:avatar) %><br />
      <%= f.file_field :avatar %>
  </div>        

ここもavatarになってるな...


user.rb

mount_uploader :avator, AvatarUploader

やっと見つけた! 案の定スペルミスでした。