【问题标题】:Using accepts_nested_attributes_for in rails with datetime在带有日期时间的rails中使用accepts_nested_attributes_for
【发布时间】:2012-05-10 13:03:34
【问题描述】:

我正在尝试使用 accept_nested_attributes_for 在 Rails 应用程序中使用可重复的日期时间部分。

我有以下几点:

accepts_nested_attributes_for :meetings, :allow_destroy => true, :reject_if => lambda { |a| a[:starting_at].blank? }

在我看来,我目前正在使用 rails date_selecttime_select

它不会保存提交,我认为这是因为starting_at 是一个多部分的日期时间属性。我过去在处理 text_fields 时使用过 a[:starting_at].blank?,但它似乎不适用于 date_select/time_select 字段。

谁能解释一下?

我的另一个选择是使用text_field,但我不知道如何做到这一点,以便日期和时间很容易(并且用户友好地选择),因为如果我使用f.text_field :starting_at,它会结合日期和时间都在一个文本字段中。

【问题讨论】:

    标签: ruby-on-rails datetime nested-forms datetime-select time-select


    【解决方案1】:

    最后,使用text_field 是最简单的。我现在只需要找到一个日期时间选择器(可能是 jquery UI 一个)。

    【讨论】:

      【解决方案2】:

      您可以轻松地使用 text_field,并找出最好的方法。

      你保持在你的视野中

      f.text_field :starting_at

      在您的模型中:

      def starting_at=(input)
        # use a shared converter to convert the format from your textfield
        x = self.string_to_date(input, I18n.t('date.formats.default'))
        write_attribute(:starting_at, x)
      end
      
      def starting_at
        # Same but in reverse
        return date_to_string(read_attribute(:starting_at), I18n.t('date.formats.default') )
      end
      

      【讨论】:

      • 嗨 Andrew,如果我在视图中使用 text_field 来表示值是 rails 标准格式的日期时间,rails 是否不会处理这个问题?当我说“我不知道该怎么做”时,我的意思是说我想让日期易于选择(使用日期选择器,因为它不会提供简单的下拉菜单)和易于选择的时间不知何故(我会更新问题)。
      猜你喜欢
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多