【发布时间】:2015-10-22 10:18:03
【问题描述】:
我正在尝试通过调用一个调用验证 gem 的操作来验证 DEA 编号。
这是风景
<label for="prescriber_dea_number">DEA number</label>
<%= text_field_tag :prescriber_dea_number %>
<%= link_to "Verify DEA number", dea_verification_insight_reports_prescriber_activity_with_patient_request_index_path remote:true %>
这是控制器动作
def dea_verification
dea = params[:prescriber_dea_number]
respond_to do |format|
if PmpCheckdigit.dea_number?(dea)
#flash confirmation
flash[:notice] = "DEA number is valid"
format.js
else
#flash error
flash[:error] = "DEA number is invalid, Expected something similar to 'AB12345678'"
format.js
end
end
end
当点击验证按钮时,页面上不会出现闪烁消息
这是我在日志中得到的内容
Started GET "/insight_reports/prescriber_activity_with_patient_request/dea_verification" for 127.0.0.1 at 2015-07-30 17:15:34 -0400
AbstractController::ActionNotFound (The action 'show' could not be found for InsightReports::PrescriberActivityWithPatientRequestController):
更新:我正在更改为 javascript 函数和弹出框
这里是 JS 函数
$('#add_prescriber_dea_number').on('click', function () {
var input = $("#prescriber_dea_number");
console.log(input);
var data = input.val();
console.log(data);
if (data == /^[a-zA-Z]{2}\d{7}$/ || data == /^[a-zA-Z]\d{8}$/){
result = parseInt(data.charAt(2)) + parseInt(data.charAt(4)) + parseInt(data.charAt(6)) +
((parseInt(data.charAt(3)) + parseInt(data.charAt(5)) + parseInt(data.charAt(7))) * 2);
if (result[-1] == parseInt(data[8])){
//valid
alert('valid')
}
}
else{
//not valid
alert('not valid')
}
});
这是视图sn-p
<%= text_field_tag :dea, '', 'data-id-search-key' => 'employer_dea', id: "prescriber_dea_number" %>
<%= render partial:"/shared/spinner", locals:{size:'small'} %>
<button class="btn btn-info" type="button" id='add_prescriber_dea_number'>
<i class="icon-plus icon-white"></i>Verify</button>
【问题讨论】:
-
link_to 中缺少逗号,应该是:
-
另外,考虑使用较短的路线名称
标签: ruby-on-rails ajax ruby-on-rails-3 activerecord actionview