在资源路径中添加新路径

cod*_*hal 2 elixir phoenix-framework

我是从铁路来的,我正试图在凤凰中实现与此相似的东西

resources :sessions, only: [:new, :index] do
  collection do
    post 'claim', to: 'sessions#claim'
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我能做的最好的事情

resources "/session", SessionController, only: [:index, :new]
post "/session/slackLogin", SessionController, :slackLogin
Run Code Online (Sandbox Code Playgroud)

我尝试添加collection do end内部资源"/ sessions"但是收到错误.有更好的方法吗?

NoD*_*ame 5

我想你已回答了自己的问题.

post "/sessions/slackLogin", SessionController, :slackLogin
resources "/sessions", SessionController, only: [:index, :new]
Run Code Online (Sandbox Code Playgroud)

应该工作得很好.

  • 除此之外,`post`路由应该在*`resources`之前移动*,否则发布到该路由将导致使用`slackLogin`的`id`参数访问`update`动作.否则这就是要走的路! (3认同)