0

我正在尝试将 Backbone 用于我最新的 Rails 项目,而我面临的最新问题是路线。

对于我的 Rails 路由,我让用户在登录后转到 /products (index_products_path)。

因此,我在 Backbone 中创建了以下路由。我打算为不同的“页面”(如邀请)创建其他主干路由器。

class Sample.Routers.ProductsRouter extends Backbone.Router

  routes:
    ""         : "index"
    ":id"      : "show"
    ":id/edit" : "edit"
    "new"      : "newProduct"

“mydomain.com/products”调出索引视图。“mydomain.com/products/#/1”或“mydomain.com/products#1”显示产品 id = 1 的显示视图。

现在,问题在于“新”路径。当我尝试通过指向“mydomain.com/products#new”来显示“新”视图时,服务器抱怨它找不到 id=new 的产品。

我真的无法弄清楚为什么会发生这种情况。当我跟踪错误堆栈时,我可以看到它Sample.Routers.ProductsRouter.ProductsRouter.show正在被调用。似乎主干路由器没有正确路由这个......并且Rails服务器只是响应id = new的产品的“GET”请求......这可能是某种主干​​配置错误吗?

任何帮助将非常非常感谢!

4

1 回答 1

2

Backbone 执行第一个匹配的路由。所以在你的情况下,把它new放在第一位。

  routes:
    ""         : "index"
    "new"      : "newProduct"
    ":id"      : "show"
    ":id/edit" : "edit"
于 2012-12-20T01:01:40.327 回答