我在我的router.ex里有这个:
resources "/games", GamesController do
get "/scores/:student_id", GameScoreController, :new
post "/scores/:student_id", GameScoreController, :create
end现在我用以下方式称呼这件事:
link(student.name, to: game_game_score_path(@conn, :new, @game, student_id: student))但是,这会创建一个链接:/games/1/分数?学生_id=1,而不是/运动会/1/分数/1。
如何调用链接以生成正确的url?
哦,有没有办法摆脱帮手的双重游戏?我试着添加as::game_score,但这并没有改变任何事情。
发布于 2015-09-12 22:06:30
将路线定义为:
resources "/games", GameController do
get "/scores/:student_id", ScoreController, :new
post "/scores/:student_id", ScoreController, :create
end注意,菲尼克斯中的所有内容都是单数的,包括控制器名。URL是复数的,但它是外部的,它并不决定您的代码是如何组织的。
以及URL助手:
link(student.name, to: game_game_score_path(@conn, :new, @game, student))如果希望控制器是GameScoreController,可以传递:as选项来自定义生成的助手。菲尼克斯文档中的更多信息:http://hexdocs.pm/phoenix/Phoenix.Router.html#resources/4
https://stackoverflow.com/questions/32542357
复制相似问题