【问题标题】:Rails - use a JSON that is returned from an AJAX form?Rails - 使用从 AJAX 表单返回的 JSON?
【发布时间】:2014-02-12 22:25:54
【问题描述】:

我有一个 Rails 表单,提交时会转到 URL /evaluate 并呈现 JSON 字符串。如何让这个表单使用 AJAX 并返回要在当前页面上使用的值?

返回值是什么格式,例如JSON,参数?

注意:Sandie 是一个 API 包装器。

/evaluate URL 链接到控制器操作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 %>

如何呈现此操作的输出以在页面中使用?

【问题讨论】:

    标签: jquery ruby-on-rails ajax json


    【解决方案1】:

    在这里,请查看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 处理程序。这是您要在页面上进行一些转换的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多