强制特定控制器操作的绝对URI

时间:2011-01-04 10:11:52

标签: ruby-on-rails-3

我有一个控制器操作,可以为在线信用卡支付网关(Ogone)生成模板。在这种情况下,我需要强制所有URI(布局,样式表,javascripts中的图像链接......)是绝对的,因为页面将由支付网关服务器本身填充和呈现。

这样做的“轨道3”是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我终于在rails之外完全解决了我的问题,使用了wget,带有选项-k,它将所有相对链接转换为绝对链接。它是我的控制器,它看起来像:

def action_with_relative_links
end

def action_with_absolute_links
    render :text => convert_to_absolute_links(:action_with_relative_links)
end

def convert_to_absolute_links(action_param)
  `wget -q -k -O/tmp/absolute_links.html #{url_for :action => action_param}`
  `cat /tmp/absolute_links.txt`
end

在这段代码中还有一件小事需要纠正:由于使用临时文件系统文件,高并发性可能会出现问题。

我希望有一种方法可以避免这种黑客攻击,并在rails中做所有事情,但我对结果非常满意,并且它允许我保持所有视图和布局文件不变。

我希望它可以帮助别人!