1

我的一个资源有一个嵌套的编辑路线:

@resource 'organization', path: 'organizations/:organization_id', ->
  @resource 'organization.edit', path: '/edit'

我像这样链接到它(使用 Emblem.js):

linkTo 'organization.edit' organization | Edit

不幸的是,这会产生如下网址:

/organizations/4#

而不是预期的:

/organizations/4/edit

知道为什么会这样吗?我对路由语法进行了很多试验。删除pathfororganization.edit什么都不做,完整的path: 'organization/:organization_id/edit.

4

3 回答 3

1

通过使用这种类型的嵌套结构,您应该能够获得所需的结果:

App.Router.map(function() {
  this.resource("organizations", function(){
    this.resource("organization", { path: "/:organization_id" }, function(){
      this.route("edit");
    });
  });
});

JSBin 示例

于 2013-10-10T17:54:38.550 回答
0

您走在正确的轨道上,但@resource实际上是针对对象的,例如组织。如果您要定义一个动作(不是嵌套资源),您将要使用@route,即:

@resource 'organization', path: 'organizations/:organization_id', ->
  @route 'edit'

我相信这应该会给你预期的行为/路由。

于 2013-10-10T16:59:02.277 回答
0

为什么不使用这样的东西:

@resource 'organization', ->
  @route "edit",
    path: "/:organization_id/edit"
于 2014-03-15T16:31:41.200 回答