我的控制器中有一种方法可以简单地计算用户的患者人数。我测试了该查询,当我手动传递一个user_id(而不是通过devise的helper方法: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 Console登录
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
答案 0 :(得分:0)
在您看来,您插入<%= @counter_patients %>
,它调用实例变量@counter_patients
。
但是您实际上要调用方法counter_patients
(请注意缺少的@
)。
将代码中的该行更改为:
<p> Count : <%= counter_patients %> <p>