Получить идентификатор current_user в модели - PullRequest
1 голос
/ 06 марта 2019

Как получить текущий идентификатор пользователя в модели, как сообщение.

    def read?
    if self.users.ids.include? @current_user
      'read'
    else
      'unread'
    end
  end

Если я пытаюсь использовать в качестве @current пользователя, это не займет. Даже проходя через контроллер?

Ответы [ 3 ]

1 голос
/ 15 мая 2019

передать пользователю везде, где вы можете получить значение

def read?(user)
    if self.users.ids.include? user.id
      'read'
    else
      'unread'
    end
 end
0 голосов
/ 06 марта 2019

Невозможно получить current_user в модели, если вы не передадите его из контроллера.

0 голосов
/ 06 марта 2019

Метод помощников не доступен напрямую внутри модели, для доступа к нему вам нужно явно назвать его так -

current_user = ApplicationController.helpers.current_user

Но я бы предложил вам передать current_user в качестве аргумента в методевот так -

class MyModel < ApplicationRecord
  #current_user = ApplicationController.helpers.current_user

 def read?(user)
    return self.users.ids.include?(user) ? true : false
  end
end

чтобы было удобнее использовать этот метод

obj = MyModel.first
obj.read?(current_user)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...