2013-02-19 81 views
0

我想添加此功能,但有一点不确定如何实现它。基本上想我希望能够做的是:在Rails应用程序中编辑文件并保存返回

VIST我的网站的管理区/管理 点击链接编辑主页内容/app/views/pages/_home.md的 显示内容在一个textarea 对其进行更改并将其保存回去

基本上,只是不确定这是否可能,如果是这样,这将如何适应我的Github回购?

亲切的问候, 尼尔

回答

0

有一对夫妇,你会碰到的问题。

第一个原因是您的应用程序服务器不会接受所做的更改,因为它们都是在应用程序服务器启动时加载并缓存的。如果您使用像独角兽这样的应用服务器,那么您需要向其发送重启信号,这将需要几秒钟的时间让新的主进程启动并且您的更改生效。

您已经指出的另一个问题是,如果您使用capistrano进行自动化部署,那么您的更改将在下一次部署时恢复,除非您以正常方式手动提交相同的更改,哪种失败目的。

一般来说,处理这个问题的方法是将模板移动到数据库表中,这样可以解决这两个问题,但这意味着您唯一的编辑方式就是通过用户界面。

如果你仍然着手开展这项工作,第一个问题是相当简单的工作。简单地说出来并执行相应的命令来重新启动应用程序服务器。在我的部署中,我在脚本/独角兽中有一个独角兽控制脚本,它将以system('script/unicorn restart')触发。第二个问题更加棘手,因为您需要为服务器运行的用户提供ssh密钥,并能够以该用户的身份推送到您的回购站。一旦你有了,你可以进行更改,git add,git commit并最终推送。如果这将变得有点肮脏,那么必须处理一个分支,该分支先于部署的内容,然后才能推送。一个可能的解决方案是在github上有一个特定的分支(即生产分支),它总是与部署的分支同步。在推送和部署人员以及在推送失败的用户界面上进行编辑的人员之间仍然存在一个小窗口。如果当前部署的HEAD与github生产分支不匹配,则可以通过锁定UI编辑器来缓解这种情况,当部署同步它们时将其解锁。

+0

感谢您的回复。想想我现在会离开这个功能,只是更新我的内容,正常并提交>推送。再次感谢! – rctneil 2013-02-19 21:58:06

相关问题