ruby-on-rails - 控制器中的方法没有被视图中的调用触发?
问题描述
我的控制器中有一个方法,可以简单地计算用户拥有的患者数量。我测试了查询,当我手动传入 user_id 时它按预期工作(而不是从 devise 传入帮助器方法:current_user)。但是,当我尝试从我的视图调用该方法时,该方法没有被调用,我在打印输出语句中添加了只是为了查看它是否只是我的查询没有被执行但是我的日志确认甚至打印输出语句都没有被执行调用。
对此的任何帮助将不胜感激!
病人控制器.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
解决方案
在您看来,您插入<%= @counter_patients %>
了哪个调用实例变量@counter_patients
。
但是您实际上想调用该方法counter_patients
(注意缺少的@
)。
将代码中的该行更改为:
<p> Count : <%= counter_patients %> <p>
推荐阅读
- google-apps-script - 如何在 Google 表格中创建 Marimekko 图表?
- c - 为什么 C 输出中的自引用结构为空
- android - 使用 Android 8.0 的华为特有的 Android 原生崩溃 (tgKill)
- angular - Angular 根据当前模块改变页眉和页脚
- flutter - 使用 Android 警报管理器和隔离器 Flutter 后台进程
- python - 如何从调用 python 脚本的 bash 脚本转到调用 bash 脚本的 python 脚本?
- python - 如何在 python 中模拟 MATLAB 的 lsqlin
- java - 如何发送输入而不让用户在 Android Studio 中看到它
- python - 为什么即使有对类型的引用,第二个片段的输出也不是 40?
- python - 使用python循环分页API