我需要在我的视图中显示一些元素,然后根据用户选择进行筛选。我试图比较来自控制器结果与JavaScript变量的变量,但似乎在这种情况下是不可能的。如何筛选结果从视图中的控制器
我有以下型号:
create_table "appointments", force: true do |t|
t.integer "doctor_id"
t.integer "user_id"
t.datetime "start_date"
t.datetime "created_at"
t.datetime "updated_at"
t.datetime "end_date"
end
在我的控制器我有这个让所有约会:
@appointments = Appointment.all
现在我查看里面我显示所有约会是这样的:
events:
[
<% @appointments.each do |appointment| %>
{
id : "<%= appointment.id %>",
title : "Reserved",
start : "<%= appointment.start_date.in_time_zone.strftime '%Y-%m-%dT%H:%M:%S' %>",
end : "<%= appointment.end_date.in_time_zone.strftime '%Y-%m-%dT%H:%M:%S' %>",
allDay : false
},
<% end %>
],
完美的作品,但我有一个选项,用户可以选择一个医生,只有appoi应该出现该医生的资料。我怎么能做到这一点?我试图像这样过滤它们,但它不起作用:
events:
[
<% @appointments.each do |appointment| %>
if <%= appointment.doctor_id %> == doctor_id{
{
id : "<%= appointment.id %>",
title : "Reserved",
start : "<%= appointment.start_date.in_time_zone.strftime '%Y-%m-%dT%H:%M:%S' %>",
end : "<%= appointment.end_date.in_time_zone.strftime '%Y-%m-%dT%H:%M:%S' %>",
allDay : false
},
}
<% end %>
],
谢谢大家。
谢谢,但不起作用,因为doctor_id是一个javascript变量,我在用户从下拉菜单中选择一个选项后创建。我收到以下错误:“未定义的本地变量或方法'doctor_id'” – Cristiano
@ ZdravkoVajudin我认为比较JavaScript变量和ruby/rails变量的唯一方法是在选择框更改后发生ajax post请求,然后转到一个控制器,该控制器将JavaScript的约会'doctor_id'发送回去。我会用我正在谈论的内容更新我的答案。 – jvperrin
@ZdravkoVajudin我已经更新了我的答案,希望它能更好地工作。 – jvperrin