我有两个RoR3应用程序( APP1 和 APP2 )
我想在 APP1 上显示来自 APP2 的一些观点。
我尝试使用'Net :: HTTP'请求( APP1 中的代码)
Net::HTTP.get( URI.parse("http://www.subdomain2.example.com/users/new") )
但响应未评估为HTTP代码。除其他事项外,我不知道是否还有其他技术可以更轻松地完成我想要的工作。
那么,是否可以使用在同一个RoR应用程序中渲染部分的常见且简单的方法,将部分从 APP1 渲染到 APP2 ?
示例:
render :partial => "/users/new"
如果是的话,我该怎么做?
答案 0 :(得分:3)
在这里,试试这个:
module ApplicationHelper
require 'open-uri'
def render_url(url)
open url do |f|
f.read.html_safe # remove the 'html_safe' if you're on Rails 2.x
end
end
end
在您看来:
<%= render_url 'http://ilikestuffblog.com/' %>
它会起作用。但只有一个问题:如果网站包含图像,其他页面或其他任何内容的相对链接,那么这些链接将无法正确显示。试试看这一堆空白图片:
<%= render_url 'http://www.ducklet.com/' %>
另外,请注意,如果您不拥有所包含的网址,则会受到跨网站脚本编写的影响。
答案 1 :(得分:1)
如果两个应用程序共享文件系统或可以访问共享文件系统,则可以直接通过文件路径引用部分文件系统。从渲染的Rails指南:
2.2.4渲染任意文件
render方法也可以使用视图 那完全不在你的身边 应用程序(也许你正在分享 两个Rails应用程序之间的视图):
渲染 “/ U /应用/ warehouse_app /电流/应用/视图/产品/显示”
Rails确定这是一个文件 因为领先的斜线而渲染 字符。要明确,您可以使用 :file选项(这是必需的 在Rails 2.2及更早版本中):
渲染:文件=&gt;
“/ U /应用/ warehouse_app /电流/应用/视图/产品/显示”:file选项采用绝对值 文件系统路径。当然,你需要 拥有你所拥有的观点的权利 用于呈现内容。
答案 2 :(得分:0)
创建一个包含任何共享代码(即部分代码)的gem可能更为谨慎,因此两个应用程序都可以使用它。