gpt4 book ai didi

datepicker - 将 simple_form 日期输入更改为具有三个字符串输入而不是三个下拉菜单

转载 作者:行者123 更新时间:2023-12-04 06:04:00 25 4
gpt4 key购买 nike

我在表单上使用 simple_form gem,并希望使用具有三个 text_fields 字段而不是三个选择字段的日期字段。

我试过这个:

<%= profile_form.simple_fields_for :birthday do |date| %>
<%= date.input :day, :as => :string, :label => "Dia", :input_html => { :maxlength => 2 } %>
<%= date.input :month, :as => :string, :label => "Mês", :input_html => { :maxlength => 2 } %>
<%= date.input :year, :as => :string, :label => "Ano", :input_html => { :maxlength => 4 } %>
<%- end -%>

但这会创建三个 div,三个标签,而且一团糟。
理想的情况是有一个标签和三个字符串字段。

有什么想法可以创建自定义输入吗?

最佳答案

在 simple_form 的邮件列表的帮助下,我终于得到了它。
自定义输入如下所示:

class CustomDateInput < SimpleForm::Inputs::Base
def input
"#{@builder.text_field("day", input_html_options)}".html_safe +
"#{@builder.text_field("month", input_html_options)}".html_safe +
"#{@builder.text_field("year", input_html_options)}".html_safe
end

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

日、月、年是需要创建的虚拟属性。
我已将它们添加到模块中,以便它们可以混合在我的模型中。
该模块如下所示:
module Extensions
module DateFields

attr_accessor :day, :month, :year

def fulldate
Date.parse("#{@day}-#{@month}-#{@year}")
end
end
end

现在在我的模型中,我可以这样做:
class Profile < ActiveRecord::Base
belongs_to :user
before_save :update_birthday

include Extensions::DateFields

private
def update_birthday
unless fulldate == true || nil?
self.birthday=fulldate
end
end

end

关于datepicker - 将 simple_form 日期输入更改为具有三个字符串输入而不是三个下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com