我是javascript,html和haml的新手,所以对于你们中的一些人来说,答案很明显是显而易见的......
原谅我对这些语言的理解不足。
我试图在if语句中调用javascript函数(整个脚本用haml编写)。一旦计算结果为1,又称为true,它将在do循环中执行代码。这是代码:
.container
%section#admin-order-list
%table.table
%thead
%tr
%th Client Name
-# %th Client Email
%th Client Phone
%th Expert Name
-# %th Expert Email
%th Expert Phone
-# %th Duration
%th Date Requested
%th Conference Number
%tbody
- @orders.each do |order|
-if (check_valid(order.requester_id, order.user_id) == 1)
- requester = User.find(order.requester_id)
- my_expert = User.find(order.user_id)
%tr
%td
= requester.first_name
= requester.last_name
-# %td= requester.email
%td
= requester.phone_number
%td
= my_expert.first_name
= my_expert.first_name
= my_expert.last_name
-# %td= order.user.email
%td
= my_expert.phone_number
-# %td= order.duration
%td
= format_date(order.created_at)
%td
= order.conference_number
:javascript
function check_valid(the_requester, the_expert){
if (typeof the_requester !== 'undefined' && typeof the_expert !== 'undefined') {
return 1;
}
else {
return 0;
}
}
答案 0 :(得分:0)
您正在混合服务器端和客户端执行。您正试图从Rails(服务器端)调用您的javascript check_valid
函数(客户端)。那样不行。
就像学习练习一样,在Rails帮助程序中重新实现您的业务逻辑,您可以按照您正在执行的操作进行编码,并摆脱该javascript。
# app/helpers/application_helper.rb
module ApplicationHelper
def check_valid(one_id, other_id)
one_id && other_id
end
end
然后考虑完全重构所有代码,这是错误设计的,并将那些requester
和my_expert
加载到控制器中的实例Ruby变量中,重新实现故障安全逻辑检查这些变量的存在。