【问题标题】:Web based desktop with ruby on rails带有 ruby​​ on rails 的基于 Web 的桌面
【发布时间】:2012-01-03 10:41:42
【问题描述】:

我是 RoR 的新手,我正在尝试创建一个类似于 Web 桌面的 Web 应用程序。 “桌面”类似于 iGoogle,您可以在其中拖放块。

在这个项目中,我肯定需要通过 OAuth 与 Facebook、Twitter 等其他服务提供商联系。目标是让用户使用网络浏览器从多个设备(手机、平板电脑、笔记本电脑)访问他们的“桌面”,并且用户可以在身份验证过程后在“桌面”上使用他们想要的服务(Facebook、Twitter)。

所以我的问题是:MVC 是否适用于这个项目?因为一般数据库只用于存储用户信息和类似 iGoogle 的块。如果是,那么 RoR 会是一个很好的解决方案吗?感谢您的建议。

【问题讨论】:

  • 我建议你用rails做几个小项目来积累一些经验。然后你会看到它是否合适。
  • 我用rails做了一个类似推特的微博和影院网络应用,感觉简单又强大。我怀疑的是我要创建的网络应用程序可能没有很多页面,在这种情况下,rails 中的路线对我来说可能毫无意义(这样的浪费)。

标签: ruby-on-rails model-view-controller oauth-2.0 igoogle


【解决方案1】:

MVC 为您提供了以(相对)简单的方式处理数据库以及复杂数据和表关系的优势。这伴随着拥有一个内存占用不是最轻的大型框架的成本。

如果您只想在数据库中存储少量键/值信息并存储一些基本用户信息,则不需要复杂的关系。我建议使用像Sinatra 这样的微框架(它像 Rails 一样基于 Rack)来尝试你的想法,看看它是否足以满足你的需求。但是,如果您已经有了更复杂的扩展计划,那么 RoR 可能是更好的选择。

我会说 MVC 适用,因为您希望以受控和可维护的方式存储和访问数据。对于您的目的,RoR 可能开销太大。如果——比如说——对于像这样的小型应用程序的内存占用对你来说不是那么重要,Rails 会完成这项工作,但你肯定只需要使用它的一小部分。

【讨论】:

  • 同意内存占用的事情,但是 rails gem 可以与 Sinatra 一起使用吗?
  • 基于 Rack 的应用程序的伟大之处在于,您可以将您需要的部分从一个(即 Rails)添加到另一个,也许是 Sinatra 应用程序。例如,您可以将 Rails 中的 ActiveRecord::Validations 包含到您的 Sinatra 项目中,以利用这些数据库验证。我自己没有尝试过,但是像 oauth-ruby 这样的 ruby gem 也应该可以与 Sinatra 一起使用。
  • 感谢您的澄清,我会试试 Sinatra 是否适合我。
【解决方案2】:

它可能会为您完成这项工作。有很多“宝石”可以为您执行 OAuth。这可能会节省您的开发时间。 MVC 可能会为您完成这项工作,因为您想要存储和访问数据。你也可以在没有模型的情况下制作控制器/视图。或模型分开,这取决于你的需要!此外,在 Rails 中进行 ajax 调用非常简单,这可能非常适合您的 iGoogle 类应用程序。

但这一切不应该是使用 rails 或任何其他语言的重点。使用您熟悉的语言。如果你的时间很紧,学习一门新的语言/框架/...可能是一个糟糕的选择。我的建议是,尝试制作一个简单的应用程序,例如 Rails 中的博客,看看这种语言是否适合你! (在互联网上搜索示例)

您可以在客户端很好地使用 JQuery。您可能还想考虑查看 Jquery Mobile,具体取决于您想要做什么。 http://jquerymobile.com/

有很多网站可以帮助您入门。我建议在 railscast.com 上观看视频和教程,看看 rails 是否适合您。

这里有一些链接 http://railscasts.com/episodes/310-getting-started-with-railshttp://rubyonrails.org/screencasts

祝你好运!

【讨论】:

  • 感谢您的建议,但如果我想制作单页应用程序,我认为我更关心的是 MVC/RoR 是否有效?
  • MVC 可以工作,但可能会有一些开销是的。每个块都可以定义为一个控制器;)
猜你喜欢
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2016-08-17
  • 2012-01-09
  • 1970-01-01
相关资源
最近更新 更多