我正在尝试在保存后重定向到索引操作,并且无法找出正确的NamedRouteQuery。我试过了:
@routes.posts.index
等,但最终唯一有效的是@redirect '/posts'
。字符串版本是index
操作的唯一选项吗?
答案 0 :(得分:1)
有几种方法可以完成这项工作。
Batman.redirect
调用@redirect
在之前/之后处理控制器,然后委托给Batman.redirect
。Batman.redirect
可以采取:
"/posts"
)Batman.redirect(MyApp.Post)
重定向到"/posts"
)Batman.redirect(thisPost)
重定向到"/posts/#{thisPost.id}"
*)Batman.redirect({controller: "posts", action: "index"})
=> /posts
Batman.redirect({controller: "posts", action: "edit", id: 6})
=> /posts/6/edit
*实际上调用record.toParam?() || record.get('id')
来获取参数
所以,您可以使用@redirect({controller: "posts", action: "index"})
或@redirect(App.Post)
重定向到索引操作。
我对NamedRouteQuery不太满意,但不管怎样,这里有一些例子:
App.get('routes').posts().path()
=> /posts
App.get('routes').posts(6).path()
=> /posts/6
App.get('routes').posts().get(6).path()
=> /posts/6
App.get('routes').posts().get(6).get('edit').path()
=> /posts/6/edit
您可以使用其中一个来获取您的网址字符串,然后将字符串传递给@redirect
。
希望这有帮助!