我在Rails应用程序中将部分视图作为局部视图,并将一些视图重构为SPA。我对一种功能有疑问。在一个地方,我在不调用控制器的情况下渲染局部图像,如下所示:
def create
school_service.update_preview
@user = get_user
@result = prepare_result
render 'school/result/show', locals: {
pupil: @user,
result: @result
}
end
我正在使用表单调用此方法。现在,我使用AJAX从JS调用它。是否可以以相同方式渲染该视图?我不想将“学校/结果/节目”重写为SPA。感谢所有答案。
你的问题说 I was calling this method using form. Now I call this using AJAX. Is it possible to render that view in the same way?
由于您使用的是AJAX,因此我假设您会遇到一些远程问题:在您的表单中为true,例如:
<%= form_for(@user, remote: true) do |f| %>
# your fields
<% end %>
这将带您进入控制器中的create动作,并且您可以在控制器中使用response_to块来处理js格式
def create
@user = get_user
@result = prepare_result
respond_to do |format|
format.js {}
end
end
这将允许您在视图中拥有create.js.erb文件,您可以在其中编写js来呈现部分
$(".your_parent_element_class").html("<%=j render partial: "school/result/show",locals:{pupil: @user, result: @result} %>")
有关更多详细信息,请查看 working with javascript in rails
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句