2012-01-03 46 views
0

我是新来的RoR,我试图创建一个Web应用程序,行为像一个Web桌面。 '桌面'将与iGoogle类似,您可以在其中拖放块。基于Web的桌面与轨道上的红宝石

在这个项目中,我一定要通过OAuth与其他服务提供商连接,例如Facebook,Twitter。目标是让用户使用网络浏览器从多种设备(手机,平板电脑,笔记本电脑)访问他们的“桌面”,用户可以在身份验证过程后在桌面上使用他们期望的服务(Facebook,Twitter)。

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

+0

我建议你用rails制作几个小项目来获得一些经验。然后你会看到它是否合适。 – 2012-01-03 10:43:17

+0

我使用rails制作了一个类似twitter的微博和电影网络应用程序,觉得它很容易但功能强大。我怀疑的是我打算创建的网络应用可能没有很多页面,在这种情况下,rails mights中的路由对我来说毫无意义(如此浪费)。 – shinnyx 2012-01-03 15:19:24

回答

0

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

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

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

+0

同意内存占用情况,但轨道宝石会与Sinatra一起工作吗? – shinnyx 2012-01-03 15:23:38

+0

基于机架的应用程序的好处在于,您可以将需要的部分从一个(即。Rails)添加到另一个,也许是Sinatra应用程序。例如,您可以将Rails的ActiveRecord :: Validations包含到您的Sinatra项目中,以利用这些数据库验证。我没有自己尝试过,但** ruby​​ **像oauth-ruby这样的宝石也应该与Sinatra一起工作。 – 2012-01-03 15:45:17

+0

谢谢澄清,我会试一试西纳特拉是否适合我。 – shinnyx 2012-01-04 16:24:12

0

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

但是,这一切都不应该成为使用rails或任何其他语言的主要观点。使用你熟悉的语言。学习一门新的语言/框架/ ...如果你的日程安排紧张,这可能是一个不好的选择。我的建议是,尝试制作一个简单的应用程序,例如在rails中的博客,看看这种语言是否适合你! (搜索互联网上的例子)

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

有一大堆网站可以帮助您入门。我建议观看railscast.com上的视频和教程,看看轨道是否适合你。

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

祝你好运!

+0

感谢您的建议,但我认为如果我想制作单页应用程序,MVC/RoR是否运行良好,我的担心会更大。 – shinnyx 2012-01-03 15:27:55

+0

MVC会工作,但可能会有一些开销是的。每个块可以被定义为一个控制器;) – 2012-01-04 17:33:53