我有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调用它。是否可以以相同的方式呈现该视图?我不想将'school / result / show'重写为SPA。谢谢你的所有答案。
答案 0 :(得分:1)
您的问题是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 %>
这将带您进入控制器中的创建操作,您可以在控制器中设置 respond_to block 来处理您的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