我正在尝试使用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等等。任何想法?
答案 0 :(得分: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