0
我開發了一個Rails 3.2後端,允許管理員使用ajax和jQuery執行CRUD操作。我用幾個控制器/視圖使用js.coffee文件來處理ajax。我的視圖的文件結構示例如下。Rails 3.2試圖減少jQuery中的重複Ajax遠程表格
views
users
index.html.erb
_form.html.erb
_edit_form.html.erb
_user.html.erb
create.js.coffee
edit.js.coffee
update.js.coffee
destroy.js.coffee
customers
index.html.erb
_form.html.erb
_edit_form.html.erb
_customer.html.erb
create.js.coffee
edit.js.coffee
update.js.coffee
destroy.js.coffee
email_blasts
index.html.erb
_form.html.erb
_edit_form.html.erb
_blast.html.erb
create.js.coffee
edit.js.coffee
update.js.coffee
destroy.js.coffee
.
.
.
.
下面是用戶視圖和客戶視圖的示例create.js.coffee。注意遵循確切模式的實例變量和div名稱。下面的所有咖啡標記都遵循上面列出的所有視圖的確切結構。上面列出的所有create.js.coffee文件實際上是相同的。我的問題是減少重複的最佳方法是什麼?這會是我應該創建一個插件的東西嗎?我應該把它放進一個幫手......等等。我不知道如何處理這種在軌爲我是一名前PHP程序員:(任何人的幫助,將不勝感激
爲用戶意見create.js.coffee:
$('#errors').empty()
$('#errors').show()
<% if @user.errors.any? %>
$('<%= escape_javascript(render :partial => "errors", :locals => {:target => @user })%>')
.appendTo('#errors')
<% else %>
$('<%= escape_javascript(render(:partial => @user))%>')
.appendTo('#user_table')
.hide()
.fadeIn(200)
$('#errors').hide()
$('#new_user')[0].reset()
$('#users_count').html '<%= users_count %>'
<% end %>
$('#error_close').click ->
$('#errors').fadeOut()
create.js .coffee的客戶視圖
$('#errors').empty()
$('#errors').show()
<% if @customer.errors.any? %>
$('<%= escape_javascript(render :partial => "errors", :locals => {:target => @customer })%>')
.appendTo('#errors')
<% else %>
$('<%= escape_javascript(render(:partial => @customer))%>')
.appendTo('#customer_table')
.hide()
.fadeIn(200)
$('#errors').hide()
$('#new_customer')[0].reset()
$('#customers_count').html '<%= customers_count %>'
<% end %>
$('#error_close').click ->
$('#errors').fadeOut()
如果你有RailsCasts臨subscri你也可以參考:http://railscasts.com/episodes/323-backbone-on-rails-part-1,http://railscasts.com/episodes/325-backbone-on-rails-part-2 – flooooo
混合erb和javascript爲什麼重複使用代碼更難?有沒有辦法在不使用服務器端JavaScript的情況下完成我所需要的功能? – ctilley79
您想如何重用特定情況下充滿預設變量的代碼?你可以重用通用和乾淨的東西,這段代碼只是特定的。因此,您需要提取泛型部分,並在需要時將其稱爲參數化。所以大部分代碼都在可重用類中,每個使用它的頁面都可以用erb和所有參數調用它。 –