【问题标题】:Custom Formtastic Control with Multiple Parameters具有多个参数的自定义 Formtastic 控件
【发布时间】:2010-07-26 14:55:43
【问题描述】:

我正在尝试为 Formtastic 构建一个采用纬度和经度的自定义控件,但是,我不确定如何传递方法名称。理想情况下,我会在 semantic_form_for 块中包含以下内容:

f.input :latitude, :longitude, :as => :location

我也试过用数组传递:

f.input [:latitude, :longitude], :as => :location

但在这两种情况下,这都失败了 - 第一个参数数量,第二个参数不是符号。

有没有办法将两个方法传递给我缺少的#input?

【问题讨论】:

    标签: ruby-on-rails ruby forms input formtastic


    【解决方案1】:

    好的,我已经通过写a plugin for Formtastic 解决了这个问题。

    我添加了一个 multi_input 函数,它可以接受任意数量的参数和一个(可选的)选项哈希。我还添加了一个 map_input 类型,用于输出地图控件和 JS(与框架无关)。

    更多详情见上述链接。

    【讨论】:

      【解决方案2】:

      您不能将多个方法传递给单个输入。你可以做的是在你的模型上有一个访问器,叫做,呃,lat_long 或类似的,它可以返回一个字符串或数组或任何你的 location_input 识别并知道如何处理的格式。

      【讨论】:

      • 感谢贾斯汀(您的回答和 Formtastic :D)-我一直在考虑这个问题,我认为通过输入可能是错误的做法 - 如果模型需要,它会破坏封装提出查看东西的具体方法。据我所知,我最好在 SemanticFormBuilder 中创建一个类似于 #input 和 #commit_button 的新方法 - 也许是 #multi_input?
      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2013-08-03
      • 2018-02-04
      • 1970-01-01
      相关资源
      最近更新 更多