【问题标题】:How to make a custom collection select input with Simple Form如何使用简单表单制作自定义集合选择输入
【发布时间】:2013-08-12 06:48:12
【问题描述】:

我想构建一个自定义集合选择输入,它将文本字段集合而不是复选框集合作为输入。我有三个基本模型:

class Signature
  has_many :signature_terms
  has_many :signatures, :through => :signature_terms
  ...

class SignatureTerm
  attr_accessible :initial # user provides initial as verification

  belongs_to :signature
  belongs_to :term
  ...

class Term
  has_many :signature_terms
  has_many :signatures, :through => :signature_terms
  ...

我需要为用户提供每个术语的初始值。使用单选按钮或复选框,这很容易实现:

= simple_form_for @signature do |f|
  ...
  = f.collection_check_boxes :policy_term_signature_ids, @signature.terms, :id, :name

这让我可以建立关系。但是,我想向用户展示他们的每一个词的首字母/非首字母。

我已阅读有关自定义简单表单字段输入的文档,并在代码中的示例之后取得了成功。我无法做的是实现自定义 collection_select 输入。如果有人可以为我提供教程或功能示例,我将不胜感激。

【问题讨论】:

    标签: ruby-on-rails simple-form has-many-through


    【解决方案1】:

    我不知道这是否是最好的方法,但我会使用您当前拥有的复选框解决方案,然后显示所选术语和文本字段的列表,除了它们之外的首字母缩写。 用 JS 创建列表和文本字段。

    【讨论】:

    • 感谢您的回复。稍微思考了一下这个问题,我觉得正确的做法是把子关系的所有实例都建立起来,然后通过fields_for来编辑children。虽然简单的表单提供了复选框功能,但我认为它是“rails 方式”的一个例外。
    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2016-10-03
    相关资源
    最近更新 更多