ruby-on-rails – Rails架构问题

ruby-on-rails – Rails架构问题,第1张

概述我正在构建一个Rails站点,除其他外,它允许用户构建自己的配方库.食谱可以手动输入,也可以通过指向其他网站的链接输入(想想 epicurious, cooks.com等).我正在编写脚本,这些脚本会在给定用户链接的情况下从这些网站中删除食谱,到目前为止(尽管存在法律问题)该部分并没有给我带来任何麻烦. 但是,我不确定在哪里放置我为这些scraper脚本编写的代码.我的第一个想法就是把它放在食谱模 我正在构建一个Rails站点,除其他外,它允许用户构建自己的配方库.食谱可以手动输入,也可以通过指向其他网站的链接输入(想想 epicurious,cooks.com等).我正在编写脚本,这些脚本会在给定用户链接的情况下从这些网站中删除食谱,到目前为止(尽管存在法律问题)该部分并没有给我带来任何麻烦.

但是,我不确定在哪里放置我为这些scraper脚本编写的代码.我的第一个想法就是把它放在食谱模型中,但似乎有点过于参与其中;图书馆或帮助者会更合适吗?

另外,正如我所提到的,我正在为不同的食品网站构建几种不同的刮刀.在我看来,这样做的优雅方法是定义一个接口(或抽象基类),它确定一组方法,用于在给定链接的情况下构造配方对象,但我不确定最佳方法是什么在这里,要么.我如何构建这些OO关系,代码应该放在哪里?

解决方法 你有这方面的两个方面是显而易见的.第一个是如何存储配方,这将是模型.显然,模型不会刮掉其他网站,因为它们只有一个责任:存储有效​​数据.您的控制器将启动抓取和存储过程,不应包含抓取代码(尽管他们会调用它).

虽然在Ruby中我们不会使用抽象类或接口 – 它是鸭子型的,所以你的刮刀实现一种已知方法或一组方法就足够了 – 你的抓取引擎应该都是相似的,特别是在公众方面他们暴露的方法.

你会把你的刮刀 – 这就是蹩脚的答案 – 放在你想要的任何地方. lib很好,但如果你想制作一个也许不是一个坏主意的插件.看看我的问题here – 着名的Rails-guy Yehuda Katz的惊人答案 – 其他一些想法,但总的来说:没有正确的答案.但是有一些错误的.

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails架构问题全部内容,希望文章能够帮你解决ruby-on-rails – Rails架构问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1277612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存