我正在尝试根据提交的表单上的参数重定向到某个位置。 如果params [:route] = group,我想重定向到groups_path。 我尝试了以下方法来重定向,但很明显,groups_path是一个变量而不是一个字符串。如何根据参数重定向?
redirect_to "#{params[:route]}s_path"
编辑: 意识到我可以重定向到实际的路径,但这似乎不是一种非常有效的方式。
redirect_to "/#{params[:route]}s"
答案 0 :(得分:14)
redirect_to send("#{params[:route].pluralize}_path")
但我宁愿写一个包装器帮助器,根据params[:route]
值返回相应的url helper。 params[:route]
可能具有任何价值,您可能希望在这些情况下进行救援。
答案 1 :(得分:2)
发送可以调用私有方法,因此更好的是public_send
而是“#{params [:route]} s”使用“#{params [:route] .pluralize}
redirect_to public_send("#{params[:route].pluralize}_path")