0

让我先说一下,我对 Ruby 和 Ruby on Rails 还很陌生,并且一直未能找到将工作中的 Ruby 程序转换为由 Rails 支持的 Web 应用程序的清晰演示。

Ruby Part:我有一个简单的类,允许用户创建一个“棒”,她可以在上面设置一只蚂蚁到任何开放的英寸点,其方向随机向上/向下移动。然后,用户可以调用运行命令并查看蚂蚁在杆子上上下移动的过程,直到蚂蚁从任一端掉下来。然后,用户可以检查蚂蚁从杆子上掉下来的最小和最大时间。

Rails 部分:因为这个程序的输出可以根据蚂蚁的初始方向而改变,我认为不需要在许多实例中使用数据库。

问题:我的模型类是否应该包含我已经编写的所有代码?如果我想构建一个简单的网页,允许用户创建一根棍子,然后显示并不断更新它的数组,然后添加每只蚂蚁的名称和位置,我的方法将如何(以及从哪里)书面呼吁?

我可能完全错了,但我怀疑我的代码应该在模型包中,并且对我创建的方法的调用将在控制器中。这意味着我应该确保控制器类中的新方法采用整数(用于大小)。我还应该编写一个新方法来创建和设置蚂蚁,并接受一个字符串和整数(也在控制器中)。

代码如下所示:

def new(size)
  @marchingant = Marchingant.new(size)

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @marchingant }
  end
end

def createAndSet(loc, name)
  @marchingant.createAndSet(loc, name)
end

(模型类中的方法验证输入)感谢您的帮助!

4

1 回答 1

2

模型包含状态,控制器控制行为,视图向用户显示数据。所以,在这种情况下,你可能应该有一个Ant模型,也许还有一个Stick模型。Ant 将与 Stick 相关,并且它的位置可能应该在 Stick 大小的范围内。因此,在index操作中(或在任何地方设置这一切)您将初始化一个 Stick 并且当用户与应用程序交互时,使用 AJAX 实例化新的 Ant 对象并将它们显示在屏幕上。我不知道你设想如何createAndSet被调用。有助于更多地了解用户与您的应用程序的交互。

老实说,我的想法是 Rails 根本不需要参与其中。如果您不将其保存到数据库并且用户以后不需要能够检索事物的状态,那么我将用 Javascript 编写整个事物。您可以创建 Ant 和 Stick 对象并公开附加到 DOM 节点的函数以供用户交互。

于 2013-05-28T21:02:04.690 回答