Rails验证页面导致路由错误

时间:2010-01-02 14:12:15

标签: jquery ruby-on-rails flexigrid

我有一个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)导致以下错误。

  
    

没有路由将“/ grid_data”与{:method =>:post}

匹配   

这就是我在routes.rb中的内容:

map.resources :mickey_mouse, :collection => {:grid_data => [:get, :post]}

为什么会发生这种情况,我该如何解决?

感谢任何解决此问题的想法,并提前感谢:)

1 个答案:

答案 0 :(得分:0)

你是如何配置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,这可能并不理想。