Rails验证页面导致路由错误
问题描述:
我有一个flexigrid组件的视图。当视图调用mickey_mouses_controller#new动作时,flexigrid组件调用mickey_mouses_controller#grid_data动作(通过localhost:3000/mickey_mouse/grid_data),并正确返回相关的json对象。但是,当我提交我的视图以便ActiveRecord验证失败并再次呈现视图(mickey_mouses_controller#create action)时,flexigrid组件正试图通过localhost:3000/grid_data(而不是localhost)调用mickey_mouses_controller#grid_data动作:3000/mickey_mouses/grid_data)这是导致以下错误。Rails验证页面导致路由错误
没有路由匹配 “/ grid_data” 与{:方法=>:后}
这是我在我的routes.rb:
map.resources :mickey_mouse, :collection => {:grid_data => [:get, :post]}
为什么会发生这种情况,我该如何解决?
欣赏任何想法来解决此感谢提前:)
答
你是如何配置的FlexGrid的JavaScript?为了您的路线应该是这样的:
$("#flex1").flexigrid({
url: 'http://localhost:3000/mickey_mouses/grid_data',
// other options ...
});
对方避开这将是添加一个额外的路线:
map.connect '/grid_data', :controller => 'mickey_mouses', :action => 'grid_data'
但如果你想在多个flexigrids这将可能不是很理想你的申请。
谢谢!我改变flexigrid的url属性从 >>网址: 'grid_data' 是 >>网址: '/ mickey_mouses/grid_data' ,这似乎做到这一点。 – obiwanchinobi 2010-01-02 21:15:20