Как разрешить настраиваемый FormBuilder обернуть выбор datetime_select, например. div? [Дубликат]

Вы можете сделать это с помощью функции reshape() или с функциями melt() / cast() в пакете reshape. Для второго варианта пример кода:

library(reshape)
cast(dat1, name ~ numbers)

Или с помощью reshape2

library(reshape2)
dcast(dat1, name ~ numbers)
11
задан iwasrobbed 2 January 2012 в 18:28
поделиться

4 ответа

Метод 1 (сложный)

Переопределите код date_select для обработки этого специального экземпляра для вас: https://github.com/rails/rails/blob/master/actionview/ lib / action_view / helpers / date_helper.rb # L283

Способ 2 (простой)

Использовать jQuery:

// Find all select boxes that have an ID attribute containing "birthday"
// and wrap a div tag around them with a certain class
$('select[id*="birthday"]').wrapAll('<div class="select_wrapper">');
8
ответ дан Erowlin 22 August 2018 в 12:49
поделиться
  • 1
    Обычная "обертка" метод не работал, но я получил его с wrapAll, поэтому спасибо за помощь. – Thomas 3 January 2012 в 00:58
  • 2
    Ссылка уже недействительна. – xon1c 24 October 2014 в 08:10
  • 3
    @ xon1c Обновлено. Пожалуйста, не стесняйтесь редактировать любые сообщения, чтобы исправить проблему в будущем. – iwasrobbed 24 October 2014 в 21:25

Я использую решение, включающее параметр :date_separator. Что-то вроде этого:

.select-wrapper
  = f.date_select :birthday, :start_year => Time.now.year - 120, :end_year => Time.now.year, :date_separator => '</div><div class="select-wrapper">'
7
ответ дан archferns 22 August 2018 в 12:49
поделиться
  • 1
    Это так неправильно и так прямо в то же время !!! – dcarneiro 25 October 2017 в 15:22

В Как разрешить настраиваемый FormBuilder обернуть выбор datetime_select, например. a div? Я в основном сталкиваюсь с той же проблемой.

JavaScript для меня не вариант, а date_separator hack - это ... хак:)

I придумал следующее решение (работает для меня, в HAML). Я думаю, что это самое чистое решение до сих пор, но полагается на некоторые внутренние элементы Rails.

- date_time_selector = ActionView::Helpers::DateTimeSelector.new(Time.current,
            { prefix: @usage.model_name.param_key,
              field_name: :starttime.to_s,
              include_position: true })
.select
  = date_time_selector.select_year
.select
  = date_time_selector.select_month
.select
  = date_time_selector.select_day
.select
  = date_time_selector.select_hour
.select
  = date_time_selector.select_minute

Все, что вам нужно сделать, это отрегулировать prefix (@usage в моем случае) и field_name (Атрибут-имя, @usage.starttime / starttime в моем случае). В этом примере я обертываю соответствующие поля даты в div класса «select».

Для справки есть еще много вариантов для игры, вот ссылки на соответствующий код:

0
ответ дан Felix 22 August 2018 в 12:49
поделиться

Это не самое приятное, но это сработало для меня ...

<div class="small-4 columns"><%= f.date_select :release_date, {date_separator: "</div><div class='small-4 columns'>"} %></div>

Где <div class="small-4 columns"></div> было то, что я хотел, чтобы все было обернуто. В основном просто убедитесь, что date_separator был закрытие моего тега и открытие моей следующей, и убедитесь, что открытие моего первого тега было до даты_селемента, а закрытие моего последнего тега было после date_select.

5
ответ дан Lisa Joy Gumerman 22 August 2018 в 12:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: