终于下定决定使用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才发现,异步真的是好东西啊,能用就用。