2014-02-12 18 views
1

我有一個Rails形成提交時,轉到URL /evaluate和呈現一個JSON字符串。我如何使這個表單使用AJAX並返回當前頁面上使用的值?導軌 - 使用從一個AJAX的形式返回的JSON?

什麼格式返回值如JSON,params?

注: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 %> 

如何呈現這個動作的輸出在頁面中使用?

回答

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處理程序。這是您要在頁面上進行一些轉換的地方。