簡體   English   中英

Rails Ajax表單提交

[英]Rails ajax form submit

這是我的布局,全部在authors_controllerAuthor模型中。

index.html.erb

<div class="row">
<div id="author-index" class="col-md-5">
    <%= render 'index'%>
</div>

<div id="author-modal" class="modal fade" role="dialog"></div>
</div>

_index.html.erb

<div class="row">
<%= form_tag authors_path, :method => 'get', remote: true do %>
<%= hidden_field_tag :direction, params[:direction]%>
<%= hidden_field_tag :sort, params[:sort]%>

<p>
    <%= link_to "New Author", new_author_path, remote: true, class: "btn btn-primary"%>

    Search for Author
    <%= text_field_tag :search, params[:search], onchange: "$(this).parent('form').submit();"%>
</p>
<% end %>
</div>

<div id="indexTable" class="row">
     #contains a table
</div>

我的控制器的表演動作:

    def index
    @authors = Author.search(params[:search]).order(sort_column + " " + sort_direction).paginate(:per_page => 10, :page => params[:page])
    respond_to do |format|
        format.html{}
        format.js{}
    end
end

當我查看服務器的日志時,一切正常

開始GET“ / authors?utf8 =%E2%9C%93&direction =&sort =&search = Ali”

由AuthorsController#index作為JS處理

參數:{“ utf8” =>“✓”,“ direction” =>“”,“ sort” =>“”,“ search” =>“ Ali”}

作者負載(0.1ms)SELECT authors 。* FROM authors WHERE(first_name LIKE'%Ali%'或last_name LIKE'%Ali%')LIMIT 10 OFFSET 0

呈現的authors / _index.html.erb(2.3ms)

呈現的authors / index.js.erb(3.2ms)

7ms內完成200 OK(查看:5.2ms | ActiveRecord:0.1ms)

但是頁面不會改變。 當我沒有遠程操作時,表單工作正常:是的。

您應該將一個名為indexjs.erb模板添加到authors views文件夾(app / views / authors / index.js.erb)中。 執行Ajax調用時,此模板應具有要執行的javascript代碼(將在客戶端發送和評估)。 或多或少:

$("#author-index").html("<%= j(render 'index').html_safe %>")

注意format.jsrespond_to塊; 允許控制器響應您的Ajax請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM