Получил быстрый вопрос о том, как показать, кто посетил профиль пользователя в моем приложении, используя рельсы? Я следил за принятым ответом на этот вопрос - How to show who has visited your profile?, но столкнулся с ошибкой, которая меня немного смутила. Я перечислил ошибки, которые я получаю, и мой соответствующий код ниже:Как показать, кто посетил профиль пользователя в Rails?
Две ошибки, возникающую в моем контроллере пользователей
Error1: не определен метод visits' for nil:NilClass Error2: can't write unknown attribute
visitor_id` >> Всякий раз, когда я посещаю профайл пользователя
пользователя контроллер
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :update, :destroy, :share, :follow]
before_action :create_visit
def show
@user = User.find(params[:id])
@visitprofiles = current_user.visitors.where('created_at > ?', 1.month.ago)
end
private
def set_user
@user = User.find(params[:id])
end
def create_visit
@user.visits.create(visitor: current_user)
end
User.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:facebook]
has_many :visits
has_many :visitors, through: :visits
Visit.rb
class Visit < ApplicationRecord
belongs_to :user
belongs_to :visitor, class_name: 'User', foreign_key: 'visitor_id'
end
вы должны, вероятно, использовать 'before_action: create_visit, только: [: show]' иначе число будет слишком высоким. –