2011-09-14 102 views
1

我正在开发一个ruby-on-rails应用程序,它将为页面上的每个部分编写XML文件。因此,每当用户发出请求时,不要每次查询数据库,都会调用与该页面相对应的XML文件,并且JavaScript将解析该文件。在铁轨方面,将会有一个内容管理系统。当用户准备好提交所有内容更改时,它们将触发发布文件,此时可能已保存在数据库中的数据现在将被写入xml文件。Rails路由和静态页面

现在的挑战是我希望所有的xml文件都存放在名为xml_display的主项目目录中的一个文件夹中。

如何配置routes.rb中采取了类似的请求...... myhost.com/display_xml/pagename.xml 和rails_project_root/display_xml/pagename.xml返回静态页面

我已经看着高电压,它似乎不是我正在寻找的解决方案。 我希望这听起来很有趣。

+0

是否至关重要的是display_xml目录是项目根目录的直接子目录?你可以把它设置为public/display_xml,并且根本没有路由问题。或者,你可以将公共/ display_xml的符号链接到display_xml .. – dantswain

回答

1

你可以只让一个控制器,它重定向到您的静态文件类似以下内容:

的routes.rb

match '/display_xml/:id', :action => 'display' 

display_xml_controller.rb

class DisplayXMLController 
    def display 
    redirect_to "http://#{host_domain}/static_xml_dir_in_public/#{params[:id]}.xml 
    end 
end 

您需要设置HOST_DOMAIN到你从哪里跑。大多数在config.yml中设置

+0

这工作完美!非常感谢你的建议。 –