前提・実現したいこと
現在、自動車メンテナンス通知アプリを作成しています。
車に関する詳細を記載するdetailモデルと名前とメールとパスワードを保存するuserモデル(deviseで作成)を作成しており、これらのモデルを紐づけました。userモデルのインスタンスを取得したいのですが、できないので困っています。どなたかご教示頂ければ幸いです。
発生している問題・エラーメッセージ
undefined method `user' for nil:NilClass Did you mean? super
index.html.erb(3行目がエラー箇所です)
<%= @data.each do |obj| %> <tr> <td><%= obj.user.username %></td> <td><%= obj.user_id %></td> <td><%= obj.engine_oil_day %></td> <td><%= obj.tire_day %></td> <td><%= obj.oil_element_day %></td> <td><%= obj.air_element_day %></td> <td><%= obj.blade_day %></td> <td><%= obj.mileage %></td> </tr> <% end %>
detail.rb
class Detail < ApplicationRecord belongs_to :user end
user.rb
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_one :detail end
user.rb
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_one :detail end
###create_details.rb
class CreateDetails < ActiveRecord::Migration[6.0] def change create_table :details do |t| t.date :engine_oil_day t.date :tire_day t.date :oil_element_day t.date :air_element_day t.date :blade_day t.integer :mileage t.integer :user_id t.boolean :status # t.references :user, foreign_key: true t.timestamps end end end
###devise_create_users.rb
class DeviseCreateUsers < ActiveRecord::Migration[6.0] def change create_table :users do |t| ## Database authenticatable t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" ## Recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## Rememberable t.datetime :remember_created_at ## Trackable # t.integer :sign_in_count, default: 0, null: false # t.datetime :current_sign_in_at # t.datetime :last_sign_in_at # t.inet :current_sign_in_ip # t.inet :last_sign_in_ip ## Confirmable # t.string :confirmation_token # t.datetime :confirmed_at # t.datetime :confirmation_sent_at # t.string :unconfirmed_email # Only if using reconfirmable ## Lockable # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts # t.string :unlock_token # Only if unlock strategy is :email or :both # t.datetime :locked_at t.timestamps null: false end add_index :users, :email, unique: true add_index :users, :reset_password_token, unique: true # add_index :users, :confirmation_token, unique: true # add_index :users, :unlock_token, unique: true end end
###add_username_to_users.rb
class AddUsernameToUsers < ActiveRecord::Migration[6.0] def change add_column :users, :username, :string end end
試したこと
optional:trueや外部キーをつけたりしましたが、上手くいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー