易于使用孤立的小部件在轨道上

时间:2009-06-04 02:20:19

标签: ruby-on-rails widget

我正在铁轨上的红宝石上开发一个“游戏平台”。它不是2D或3D密集型游戏,而更像是测验游戏,想象典型的Facebook测验,甚至是“你的大脑有多大”的游戏类型。 这里的学生将使用该平台轻松开发自己的想法。关键是要创建一系列小部件,它们可以放在页面中,使它们可以处理数据和CSS。

为此,我开始创建小部件,这些小部件将集成到您只需执行类似

的页面中
<%= widget_name widget_params %>

对他们来说足够简单,但为此我需要:

  • 仅渲染部分的帮助程序中的方法
  • 带有标有id
  • 的html元素的部分
  • 在javascript文件中运行,在页面上查找该ID,如果找到了他们的工作(因为大多数小部件将以某种方式使用JS)
  • 模型中的数据支持。

例如,我的计时器是一个javascript函数+部分游戏。超时游戏是一个模型,每个游戏都有一个列超时。以及帮助器中包含的所有内容,以便用户只使用<%= timer @game %>

请注意,小部件需要更改页面或至少向页面控制器发送某种信号,以告诉他有关全局更改的信息。例如,计时器小部件不仅会终止自身,而且应该告诉游戏控制器游戏也已经终止(这就是为什么它们在同一页面而不是iframe中的部分原因)。

学生使用的界面(只有一个衬垫)很简单,我喜欢这样但事实上每个小部件都需要触摸这么多地方,避免我轻松地将新的小部件部署到框架中,一般来说看起来很糟糕设计。

此外,我(1小时前)发现了Extjs,因为我将开发GPL,我正在考虑它。

任何方式让extjs或任何其他手工制作或提供的小部件更加孤立,但仍然能够改变更全局的背景?

2 个答案:

答案 0 :(得分:4)

您是否已发现Apotomo?这是Rails的事件驱动小部件,具有可选的状态 - 非常类似于GUI。

答案 1 :(得分:1)

在生产应用程序中,Rails组件是frowned upon,但如果您的应用程序是用于教学目的而学生不会修改组件,那么我不明白为什么不到use them