我正在嘗試爲Rails 3.2應用程序使用Ajax創建更新表單。我是一個Ajax初學者,所以我需要一些指導。我想實現的是:使用Ajax進行Rails 3.2更新操作。
1. The user presses a button and a form slides down from the top in a div.
2. The user updates the form and presses "update".
3. The parameters from the updated form is sent and saved to the database, and
4. the form slides up again without making the user leave the page.
表單目前看起來是這樣的:
<%= form_for(@user, :remote => true) do |f| %>
<%= render 'shared/error_messages' %>
<%= f.fields_for :oak do |oak| %>
<%= oak.text_field :name, :placeholder => "Name" %>
<% end %>
<%= f.fields_for :energy_meter do |energy_meter| %>
<%= energy_meter.text_field :energy_meter_id, :placeholder => "Id" %>
<% end %>
<%= f.submit "Update!", "data-role" => "button", "data-theme" => "b", "return" => "false" %>
<% end %>
我有一個目前看起來像這樣的更新操作:
def update
@user = current_user
@user.update_attributes(params[:user])
end
它位於我的UsersController。
我也有,目前看起來像這樣一個update.js.erb文件:
$(window.location.replace("/"))
我不知道我應該把update.js.erb做我想做什麼,也不知道怎樣去發送參數,它目前只重定向到/
。我也想知道我的更新操作應該放在哪裏以及哪些內容中,它目前位於UsersController中,但是它應該位於我的表單所在的頁面控制器中嗎?
任何提示或指導將是偉大的!
謝謝。
嗨,已經得到了警惕出現。但它重定向到/ users/1。我的更新操作當前如下所示:'def update @user = current_user respond_to do | format | @ user.update_attributes(params [:user])format.js {render:layout => false} end end'。並顯示未定義的文本。 – Anders
確保你已經在'application.js'中給出了正確的'form id',同時檢查控制檯在提交表單時發送了哪個請求(即JS或HTML)。 – Bongs