我有一个Rails表单,在提交时会转到URL /evaluate
并呈现一个JSON字符串。如何使此表单使用AJAX并返回要在当前页面上使用的值?
返回的值是什么格式,例如JSON,params?
注意:Sandie
是一个API包装器。
/evaluate
网址链接到控制器操作evaluate
:
def evaluate
@code_lesson = CodeLesson.find(params[:code_lesson][:id])
@language = Language.find(@code_lesson.language_id).slug
@sandie = Sandie.new(language: @language)
@code = @sandie.evaluate(code: params[:code_lesson][:user_code])
render inline: "<%= @code.inspect %>"
end
表格是这样的:
<%= form_for @code_lesson, url: new_submission_path,
method: :post,
remote: true do |f| %>
<%= f.hidden_field :user_code, value: '' %>
<%= f.hidden_field :id, value: @code_lesson.id %>
<%= f.submit "Submit Code", class: "btn btn-success", id: "submit-code" %>
<% end %>
如何呈现要在页面中使用的此操作的输出?
答案 0 :(得分:0)
在这里,抓住link到Rails指南:使用JavaScript。您将为AJAX成功编写自己的JavaScript处理程序。文章提供了非常简单的例子:
$(document).ready ->
$("#new_post").on("ajax:success", (e, data, status, xhr) ->
$("#new_post").append xhr.responseText
).bind "ajax:error", (e, xhr, status, error) ->
$("#new_post").append "<p>ERROR</p>"
如您所见,您的数据将传递给ajax:success
处理程序。这是您要在页面上进行一些转换的地方。