加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails架构问题

发布时间:2020-12-17 02:26:54 所属栏目:百科 来源:网络整理
导读:我正在构建一个Rails站点,除其他外,它允许用户构建自己的配方库.食谱可以手动输入,也可以通过指向其他网站的链接输入(想想 epicurious,cooks.com等).我正在编写脚本,这些脚本会在给定用户链接的情况下从这些网站中删除食谱,到目前为止(尽管存在法律问题)该部
我正在构建一个Rails站点,除其他外,它允许用户构建自己的配方库.食谱可以手动输入,也可以通过指向其他网站的链接输入(想想 epicurious,cooks.com等).我正在编写脚本,这些脚本会在给定用户链接的情况下从这些网站中删除食谱,到目前为止(尽管存在法律问题)该部分并没有给我带来任何麻烦.

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读