Метод в контроллере не вызывается вызовом в представлении? - PullRequest
0 голосов
/ 18 марта 2019

У меня в контроллере есть метод, который просто подсчитывает количество пациентов у пользователя.Я проверил запрос, и он работает, как и ожидалось, когда я вручную передаю user_id (не передавая вспомогательный метод из devise: current_user).Однако, когда я пытаюсь вызвать метод из моего View, метод не вызывается, я добавляю в оператор print out только для того, чтобы посмотреть, не выполняется ли только мой запрос, однако мои журналы подтверждают, что даже оператор print out не выполняется.вызывается.

Любая помощь по этому вопросу будет принята с благодарностью!

Patient_controller.rb

helper_method :counter_patients

 def counter_patients
      puts "Tiggered"
      patient_user_counter = Patient.where(user_id: current_use).select(:user_id).count
  end

index.html.erb

<p> Count : <%= @counter_patients %> <p>

Журнал с консоли Rails при выполнении запроса

irb(main):015:0> r = Patient.where(user_id: 2).select(:user_id).count
   (0.4ms)  SELECT COUNT("patients"."user_id") FROM "patients" WHERE "patients"."user_id" = ?  [["user_id", 2]]
=> 7

1 Ответ

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

По вашему мнению, вы вставляете <%= @counter_patients %>, который вызывает переменную экземпляра @counter_patients.

Но вы действительно хотите вызвать метод counter_patients (обратите внимание на отсутствующий @).

Измените эту строку в своем коде на:

<p> Count : <%= counter_patients %> <p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...