【问题标题】:Good forms helpers for Sinatra?Sinatra 的好表单助手?
【发布时间】:2012-08-25 18:55:29
【问题描述】:

我开始做表单,正在 Sinatra 中寻找表单助手。

  • Sinatra 似乎没有内置的表单助手。
  • Padrino 中的助手看起来像我所追求的,但我不觉得将我的应用程序移植到另一个框架。此外,它开始看起来像一个 Rails 应用程序。
  • 我没有找到任何“事实上的”选择的 Sinatra 表单助手。

理想情况下,我只需要一组体面的表单助手,我可以将它们作为 gem 包含并开始使用,而不是手动滚动所有基本级别的 erb/haml/ruby 表单构建。

你有什么建议?

【问题讨论】:

    标签: ruby forms sinatra


    【解决方案1】:

    我建议使用sinatra-formhelpers-ng,因为它修复了sinatra-formhelpers 中的一个错误。

    我也发现sinatra-formhelpers 很有用,但它似乎没有得到维护,我遇到了一个错误:SELECT 标记的状态不会在表单提交中保持不变。所以换句话说,如果我制作一个包含一堆字段和两个下拉列表(SELECT 标记)的表单,如果我说由于除了 SELECT 标记之外的验证失败而想要在 POST 中重新呈现表单,所有字段都会保留。我修复了这个问题并将其推送到原始的sinatra-formhelpers repo。推送已被接受,但 gem 未更新。我等了几个星期,然后将其分叉到sinatra-formhelpers-ng

    【讨论】:

      【解决方案2】:

      我发现sinatra-formhelpers 很有用,并在一些项目中使用它。看看their Github page,代码非常简单,可能正是您正在寻找的。即使没有,您也可以轻松添加自己的专业助手。你可以简单地安装它

      gem install sinatra-formhelpers
      

      并通过要求 Gem 来使用它:

      require 'sinatra/form_helpers'
      

      或者,如果您将Sinatra::Base 子类化,则另外包含帮助器:

      class MyApp < Sinatra::Base
        helpers Sinatra::FormHelpers
        # ...
      end
      

      毕竟,Sinatra 的部分哲学是尽可能轻。因此,如果您想要内置所有花哨的东西,Sinatra 可能不是正确的工具。

      【讨论】:

      • 所以我为此推送了一个修复程序以在表单提交中保留选择值,并且推送被接受但 gem 没有更新。我建议寻找另一种选择,因为它似乎已被放弃。
      • 我很生气,我只是将它分叉到sinatra-formhelpers-ng,所以考虑改用它(它在表单提交中正确地保持 SELECT 状态)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多