gpt4 book ai didi

jquery - 通过 Ajax 获取集合以在 View 中显示

转载 作者:行者123 更新时间:2023-12-01 01:22:52 25 4
gpt4 key购买 nike

我想做的就是当用户单击按钮时在 View 中填充集合。但我觉得我把这种方法搞得太复杂了,而且行不通。查看我的代码 - 我哪里出错了?

点击处理程序:

 $('#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);
}
});

});

Controller 操作:

 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

_followup.html.erb:

<%= @assessments.each do |assessment| %>
<%= assessment.name %>
<% end %>

用户点击按钮 -> 数据发送到 Controller -> Controller 渲染 Javascript -> Javascript 渲染部分 html。

我是不是把事情搞得太复杂了?而且我的 html 甚至没有渲染(assessment.name)

最佳答案

你的部分(当前在你的例子中命名为:_followup.html.erb)应该只是生成一行的代码,Rails会为你迭代它,你应该以它命名它代表的模型,即。

 # app/views/assessments/_assessment.html.erb
<%= assessment.name %>

然后在您的 app/views/assessments/followups.html.erb View 中,您可以像这样使用该部分:

<%= render @assessments %>

...是的,这就是所需要的,Rails 将自动迭代它,将局部内的本地 assessment 变量设置为 @assessments 中的每个对象。

那么,最后一部分是您的 followups.js.erb,基本上您想要与您在 HTML 文件中放入的 render 行完全相同,但只是将其包装在 escape_javascript 中,以便将其正确传递给 JS html() 函数:

$('.modal-body').html("<%= escape_javascript render @assessments %>")

就是这样。

关于jquery - 通过 Ajax 获取集合以在 View 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30990176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com