終于下定決定使用AJAX了。
核心原則是在提交表單的時候,請求JS格式的數據,接著controller就會去找對應的js文件,然后再把js代碼返回到view,實現AJAX。
- 在views中,只需要加一個參數,請求的時候,就會請求JS的數據
<%= link_to "增加分類", new_group_path, class:"btn btn-link", remote: true %>
- 在controller中,用下面的代碼來替代redirect_to。值得注意的是,render '_error'這行代碼會去調用_error.js文件
def create
@group = current_user.groups.build(name:group_params[:name])
if @group.save
respond_to do |format|
format.js
end
else
render '_error'
end
end
- 然后在js文件中寫js代碼,當然了,可以用render來把html代碼渲染到js代碼中去,使用"j(<%= render .... %>) "來實現。
app/views/groups/new.js.erb
var xx = $("input").parent().parent();
xx.prev().show();
xx.remove();
$('#groups').prepend("<%= j render(partial: 'group_new', locals: {group: @group}) %>")
4、最后就是寫js代碼(可以用jquery)來實現view層的表現了,根據你的需求來寫。
因為從沒接觸過js,完全是一邊看資料一邊寫,所以很痛苦,大部分時間都在處理頁面的表現。并且代碼不簡潔,同時重復的代碼也很多,代碼的組織幾乎也沒有,以后需要好好了解js才行。
用了AJAX才發(fā)現,異步真的是好東西啊,能用就用。