Jquery 通过Ajax获取要在视图中显示的集合
我所要做的就是当用户单击按钮时在视图中填充一个集合。但我觉得我把这条路弄得太复杂了,它不起作用。查看我的代码-哪里出了问题 单击处理程序:Jquery 通过Ajax获取要在视图中显示的集合,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我所要做的就是当用户单击按钮时在视图中填充一个集合。但我觉得我把这条路弄得太复杂了,它不起作用。查看我的代码-哪里出了问题 单击处理程序: $('#filterrific_results').find('.followup-injury').on('click', function(e){ e.preventDefault(); $.ajax({ url: "/assessments/followup
$('#filterrific_results').find('.followup-injury').on('click', function(e){
e.preventDefault();
$.ajax({
url: "/assessments/followups",
type: "POST",
data: {patient_id: patient_id},
success: function(data){
console.log(data)
},
error: function(err) {
console.log(err);
}
});
});
控制器操作:
def followups
@patient = Patient.find(params[:patient_id])
@assessments = @patient.assessments
render :followups
end
Followups.js.erb:
$('.modal-body').html("<%= render partial: 'followup', :assessments=> @assessments %>").html_safe
$('.modal body').html(“@assessments%>”).html\u安全
_followup.html.erb:
<%= @assessments.each do |assessment| %>
<%= assessment.name %>
<% end %>
用户单击按钮->数据发送到控制器->控制器呈现Javascript->Javascript呈现html部分
我是不是把事情弄得太复杂了?另外,我的html甚至没有呈现(assessment.name)您的部分(在您的示例中当前命名为:\u followup.html.erb
)应该只是生成一行的代码,Rails将为您迭代它,并且您应该根据它表示的模型命名它,即
# app/views/assessments/_assessment.html.erb
<%= assessment.name %>
…是的,这就是所需的全部内容,Rails将自动对其进行迭代,将partial中的本地assessment
变量设置为@assessment
中的每个对象
那么,最后一部分就是你的followups.js.erb
,基本上你想要的是与你放在HTML文件中完全相同的render
行,但是只需将它包装在escape\u javascript
中,这样它就可以正确地传递给jsHTML()
函数:
$('.modal-body').html("<%= escape_javascript render @assessments %>")
$('.modal body').html(“”)
就这样
$('.modal-body').html("<%= escape_javascript render @assessments %>")