Я пытаюсь показать только контакты current_user через рельсы. current_user
метод:
def index
if params[:category_id] && !params[:category_id].empty?
category_find = Category.find(params[:category_id])
@contacts = category_find.current_user.contacts.search(params[:term]).order(created_at: :desc).page params[:page]
else
@contacts = Contact.current_user.search(params[:term]).order(created_at: :desc).page params[:page]
end
end
модель контактов:
scope :search, -> (term) do
where('LOWER(name) LIKE :term or LOWER(email) LIKE :term or LOWER(country) LIKE :term', term: "%#{term.downcase}%") if term.present?
end
Но возвращается unfined method current_user
.
что я здесь делаю, что мешает мне показывать контакты только для текущего пользователя?
РЕДАКТИРОВАТЬ:
Вот контакт пользователя:
class Contact < ApplicationRecord
belongs_to :category
has_one_attached :contact_avatar
belongs_to :user
validates :name, :email, presence: true
validates_length_of :name, minimum: 3
validates_length_of :mobile, minimum: 7, maximum: 15, allow_blank: true
validates_length_of :phone, minimum: 7, maximum: 15, allow_blank: true
scope :search, -> (term) do
where('LOWER(name) LIKE :term or LOWER(email) LIKE :term or LOWER(country) LIKE :term', term: "%#{term.downcase}%") if term.present?
end
end
Вот модель пользователя.
class User < ApplicationRecord
has_many :contacts
has_many :categories
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_one_attached :user_avatar
end
Вот модель категории:
class Category < ApplicationRecord
has_many :contacts
belongs_to :user
end
Примечание. Я использую gem для разработки для аутентификации.