Mis*_*hko 2 routes ruby-on-rails ruby-on-rails-3
我的内容如下config/routes.rb:
match "/assets/:id" => "assets#my_action"
Run Code Online (Sandbox Code Playgroud)
我想改变它以便:
/aasets/id
Run Code Online (Sandbox Code Playgroud)
和
/aasets/id/download
Run Code Online (Sandbox Code Playgroud)
将被映射到assets#my_action,如果URL结束,/download我将在里面有一个标志my_action(比方说,params[:something]不会nil).
我怎么能这样做?
小智 8
您可以在1行中执行以下操作:下载作为可选参数,例如:
match '/assets/:id(/:download)' => "assets#my_action"
然后在你的控制器中params[:download]可以用来检查URL中id之后的内容,如果有的话.
您可以简单地将两个路由匹配到同一个控制器.
match "/assets/:id" => "assets#my_action"
match "/assets/:id/:downloadparams" => "assets#my_action"
Run Code Online (Sandbox Code Playgroud)
您检查params [:downloadparams]将检查其余部分.
编辑:哦"下载"不会是变量对吗?你可以试试像
match "/assets/:id/:action" => "assets#my_action"
Run Code Online (Sandbox Code Playgroud)
如果不是params[:action] == "download",请检查是否忽略该参数.
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |