Вы можете сделать это с помощью функции reshape()
или с функциями melt()
/ cast()
в пакете reshape. Для второго варианта пример кода:
library(reshape)
cast(dat1, name ~ numbers)
Или с помощью reshape2
library(reshape2)
dcast(dat1, name ~ numbers)
Метод 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">');
Я использую решение, включающее параметр :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">'
В Как разрешить настраиваемый 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».
Для справки есть еще много вариантов для игры, вот ссылки на соответствующий код:
Это не самое приятное, но это сработало для меня ...
<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.