我有一個表單部分,我在兩個地方使用添加新配料(在配方應用程序中)。當我第一次構建應用程序時,我希望用戶能夠在填寫新配方卡時添加新配料。我使用了一個模式彈出窗口和AJAX,這樣新的成分窗體彈出,完成,當點擊提交按鈕時,一些jQuery隱藏模式框並更新頁面上的一些選項標籤。Rails - 爲AJAX和非AJAX請求使用相同的表單部分
從配方表格中,我使用<%= link_to 'New ingredient', new_ingredient_path, :remote => true %>
調用配料部分。我的成分new.html.erb文件只包含了部分的電話:
<%= render 'form' %>
而且_form.html.erb樣子:(剪斷,爲了簡潔等領域)
<%= form_for @ingredient, :remote => true do |f| %>
<%= render 'shared/ingredient_error_messages' %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :amount %>
<%= f.text_field :amount%>
</div>
<div class="actions">
<%= f.submit "Save ingredient" %>
</div>
<% end %>
我的問題是我現在希望用戶也能夠從網站的配料部分創建新的配料。由於我不需要網站那部分的模式框和jQuery功能,我寧願將它視爲香草HTML請求。但是,我不知道如何根據需要「關閉」AJAX功能,或者如果這是一種很好的做法。
我想過在指向新成分表單的鏈接中傳遞一個參數,並使用它來控制表單中的:remote屬性。這裏最好的做法是什麼?理想情況下,可以通過鏈接控制表單的遠程屬性,從而使我可以將AJAX保留在一個位置,並在另一個位置使用HTML。我可以很容易複製的形式作爲非AJAX版本和調用,但是這不是很乾......
輝煌 - 清潔,簡單,並且(最重要的) - 有用!!!謝謝! – Jim