我有一个嵌套的编辑路线,用于我的一个资源:
@resource 'organization', path: 'organizations/:organization_id', ->
@resource 'organization.edit', path: '/edit'
我这样链接到它(使用Emblem.js):
linkTo 'organization.edit' organization | Edit
不幸的是,这导致了一个网址:
/organizations/4#
而不是预期的:
/organizations/4/edit
知道为什么会这样吗?我尝试了很多路由语法。删除path
的{{1}}不会做任何事情,完整的organization.edit
也是如此。
答案 0 :(得分:1)
您应该能够通过使用这种类型的嵌套结构来获得所需的结果:
App.Router.map(function() {
this.resource("organizations", function(){
this.resource("organization", { path: "/:organization_id" }, function(){
this.route("edit");
});
});
});
答案 1 :(得分:0)
你走在正确的轨道上但是@resource
真正用于对象,例如组织。如果您要定义一个动作(而不是嵌套资源),您将需要使用@route
,即:
@resource 'organization', path: 'organizations/:organization_id', ->
@route 'edit'
我认为应该给你预期的行为/路线。
答案 2 :(得分:0)
为什么不使用这样的东西:
@resource 'organization', ->
@route "edit",
path: "/:organization_id/edit"