Redirect_to与字符串路径
问题描述:
我想重定向到基于提交表单上的参数的位置。 如果params [:route] = group,我想重定向到groups_path。 我尝试了以下方法重定向,但显然groups_path是一个变量而不是一个字符串。我如何根据参数重定向?Redirect_to与字符串路径
redirect_to "#{params[:route]}s_path"
编辑: 意识到我可以重定向到实际的路径,但是这似乎并不像一个很轨做的方式。
redirect_to "/#{params[:route]}s"
答
redirect_to send("#{params[:route].pluralize}_path")
但我宁愿写一个包装辅助基础上,params[:route]
值返回相应的URL帮手。 params[:route]
可能有任何价值,你可能想在这些情况下救援。
答
发送可以调用私有方法,因此更好的是public_send
和代替 “#{PARAMS [:路线]}的” 使用“#{PARAMS [:路线] .pluralize}
redirect_to public_send("#{params[:route].pluralize}_path")
+ 1,完美的答案.. – 2012-03-24 16:35:29
我同意,打在头上 如果有人试图将自己发送到另一条路径,它会被视为一个问题,他们将要么通过身份验证被拒绝,要么无论如何打404页。如果你使用redirect_to send(“#{params [:route] .pluralize} _path”),那么我会让它成为帮手吗? – BookOfGreg 2012-03-24 23:13:22
会更好,所以你得到正确的plura补肾中药 – meredrica 2013-03-18 07:38:02