1

问题:有没有人有一个简单的例子来说明如何使用 redtape gem?我希望有基本的 MVC 示例向我展示这一切是如何结合在一起的。

一个不同但相关的问题:可能需要做哪些其他事情才能启动和运行,但 Readme.md 描述中没有列出?宝石所有者可能会假设新手(如我)可能不知道做什么?

注意:我在这里提到“错误”,但不要发布它们,因为我很确定它们不相关。我不认为我看到的特定错误是有意义的,因为我什至认为我没有正确地做基础知识以使其正常工作。

我很确定繁文缛节的宝石是我需要的

我正在寻找 Accepts_nested_attributes_for (ANAF) 的良好替代品,似乎redtape gem是这类事情的热门选择。(有关历史,请参阅我之前发布的这两个问题:Rails 3.2 应用程序 - 我应该使用版本控制 gem(paper_trail 或 vestal_versions)还是手动处理它?Rails - 如何在不使用 Accepts_nested_attributes_for 的情况下管理嵌套属性?。)

但是我太笨了,无法使用它-我不知道我不知道什么

我的问题是我太无知了,无法按照包含的文档实际使用 gem。通常,我会通过Railscasts剧集偶然发现这种解决方案(例如#196 嵌套模型表单(修订版),在我意识到 ANAF 对我正在做的事情来说不够健壮之前,它最初将我指向 ANAF),所以我d 只是按照准备好的指南找到了这个选项。在这种情况下,没有 Railscast,所以我有点卡住了。

这是我所做的

我已经安装了 gem,并且我已经尝试使用自述文件中提供的示例代码,但这就是我所得到的。每次我尝试实际使用它时,我都会遇到许多错误(“...redtape_path 不存在”,各种数据类型错误),当我使用控制器代码时,这些错误似乎会发生变化。但我认为更大的问题是我不知道我在做什么,我只是想一起破解一些东西。

例如(来自 Readme.md):

//The form...

<%= form_for @form, :as => :whatever %>
...

# The controller
class SomethingController
  def new
    @form = Redtape::Form.new(self, params)
  end

  def create # should support update as well...
    @form = Redtape::Form.new(self, params)
    if @form.save
      # ...
    else
      # ...
    end
  end
end

我认为我需要什么

有没有人真正使用过繁文缛节,你能分享一个显示所有移动部件(MVC)的例子吗?我觉得我错过了一些大事。我基本上模仿了这个例子,一点运气都没有(只是一个又一个错误)。还有什么我想念的吗?我需要一个作为 Form 对象的“Something”模型吗?那是什么样子的?

请注意,我也看过这篇文章 -重构 Fat ActiveRecord 模型的 7 种模式- 这似乎很有帮助(第 3 点。似乎它可能非常相关),但我仍然没有足够的知识来利用我发现的东西远的。

4

1 回答 1

0

我写了繁文缛节。不过,正如自述文件所示,Form 对象根本不是我的主意。实际上,这也不是 Bryan Helmkamp 的 (sp?),尽管他的博客文章启发了我模仿和自动化他的特殊技术。我记得第一次看到它是在 99 年的 Apache Struts 中,我想。

试图让繁文缛节易于使用。也就是说,自从我为 ClearFit 编写它以来,有一次我在使用它时遇到了问题。我没有时间诊断它(因为这是一个非常匆忙的小项目),但它可能是与 simple_form 的意外交互。

无论如何,对于典型的 ANAF 情况,您应该能够将嵌套参数传递给Redtape::Form.new. 返回Form的对象让您可以调用#save并让 Redtape 为您处理持久性,或者您可以使用#model. IIRC,Form也暴露了验证错误。

希望这可以帮助。

于 2013-03-28T22:29:29.090 回答