0

我有一个带有 flexigrid 组件的视图。当视图调用 mickey_mouses_controller#new 动作时,flexigrid 组件调用 mickey_mouses_controller#grid_data 动作(通过 localhost:3000/mickey_mouse/grid_data)并正确返回相关的 json 对象。

但是,当我提交我的视图时 ActiveRecord 验证失败并再次呈现视图(mickey_mouses_controller#create 操作),flexigrid 组件试图通过 localhost:3000/grid_data 调用 mickey_mouses_controller#grid_data 操作(而不是 localhost:3000/mickey_mouses /grid_data) 导致以下错误。

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

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

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

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

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

4

1 回答 1

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'

尽管如果您想要在应用程序中使用多个 flexigrid,这可能并不理想。

于 2010-01-02T16:17:44.843 回答