有时候我们可能对action渲染后的代码不太满意,这时就要做微调,虽然很少有这样的需求.
可能大多数人不知道,要实现这种功能比想象的还要简单,我们只需要直接修改render之后的结果就可以了.
举个栗子,在页面中使用分页时会根据当前的action名生成页面链接url,但是这是我不想要的结果.
action:search render:index action:index
如上,在search动作最后渲染到index页面,同样index动作自然也渲染到index页面.在index.html中有will_paginate来生成分页链接.如果是从action:index进入的生成得链接url为:/users?page=1,而从action:search进入生成得链接却为:/search?page=1,这当然不是我想要的!
我开始猜测这个和当前的action名称有关,所以我手动在render修改名称:
params[:action] = 'index'
可惜这招无效!
于是直接改渲染后的结果吧:
r = render 'users/index' r.first.gsub!("/search?","?")
that’s all!!!