2

我正在尝试使用 simple_form 自定义输入来记录多条记录。我的输入是:

class InlinedateInput < SimpleForm::Inputs::Base
  def input
    "#{@builder.text_field("startmonth", input_html_options)}".html_safe + "/" +    "#  
    {@builder.text_field("startday", input_html_options)}".html_safe + "/" "# 
    {@builder.text_field("startyear", input_html_options)}".html_safe + "To:    " "#
    {@builder.text_field("endmonth", input_html_options)}".html_safe + "/" + "#
    {@builder.text_field("endday", input_html_options)}".html_safe + "/" "#
    {@builder.text_field("endyear", input_html_options)}".html_safe + "Price:" "#
    {@builder.text_field("price", input_html_options)}".html_safe
  end

  #Makes the label target the day input
  def label_target
    "month"
  end
end

基本上,问题是我在这个输入中定义了一堆不同的输入。因此,如果我尝试在表单中多次使用此方法,它只会提交最后一个。我需要以某种方式从我的表单中传递一个计数器变量,以便我可以拥有 startday_1、startday_2 等。有什么想法吗?

4

1 回答 1

4

您可以通过选项哈希将您想要的任何参数传递给自定义输入。

例如,您可以轻松地将自定义参数(计数器)传递给您的输入:

= f.input :my_field, :as => :custom_input, :counter => 2

并将其访问到您的自定义输入代码中:

class CustomInput < SimpleForm::Inputs::StringInput
  def input
    counter = options[:counter] || -1
    input_html_options[:value] = counter
    super
  end
end
于 2013-05-07T13:44:47.940 回答