【发布时间】:2012-03-18 16:47:24
【问题描述】:
我正在尝试通过 Javascript 或 Ruby on Rails 代码对新位置进行排序后重新加载页面。
$("#serialize").click ->
c = set: JSON.stringify($("#sortable").nestedSortable("toHierarchy",
startDepthCount: 0
))
$.post "savesort", c, $("#output").html("<p id=\"flash_notice\">Saved Successfully</p>")
false
我正在考虑在此处添加它
$.post "savesort", c, $("#output").html("<p id=\"flash_notice\">Saved Successfully</p>")
window.location.reload(false);
false
但这似乎打乱了顺序。这是我的 Rails 代码
class SiteController < ApplicationController
def savesort
neworder = JSON.parse(params[:set])
prev_item = nil
neworder.each do |item|
dbitem = Category.find(item['id'])
prev_item.nil? ? dbitem.move_to_root : dbitem.move_to_right_of(prev_item)
sort_children(item, dbitem) unless item['children'].nil?
prev_item = dbitem
end
Category.rebuild!
render :nothing => true
end
end
我也在考虑将 render :nothing => true 更改为 redirect_to root_url 但这似乎也不起作用。
这是我的 Routes.rb(为了篇幅而缩短)
locksmithing::Application.routes.draw do
get "site/home"
match "/savesort" => 'site#savesort'
root to: 'site#home'
end
那么,我应该在哪里添加代码来刷新页面? Javascript 还是在站点控制器中?还是有其他解决方案?提前致谢。
【问题讨论】:
标签: jquery ruby-on-rails ruby ruby-on-rails-3 coffeescript