Добавьте display: flex;
к родительскому элементу. Вот решение с префиксом:
p {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
span {
float: left;
display: inline-block;
width: 100px;
background: blue;
font-size: 30px;
color: white;
text-align: center;
}
<p>
<span> Foo </span>
<span> Bar </span>
</p>
Упрощенная версия
Как преобразовать массив объектов в ActiveRecord :: Relation? Предпочтительно, не делая каждый раз каждый раз.
blockquote>Вы не можете преобразовать массив в ActiveRecord :: Relation, поскольку Relation - это просто построитель SQL-запроса, и его методы не работают с фактическими данными .
Однако, если вам нужно отношение:
- для ActiveRecord 3.x, не вызывайте
all
и вместо этого вызывайтеscoped
, который вернет ссылку, которая представляет те же записи, которыеall
предоставит вам в массиве.- для ActiveRecord 4.x, просто вызовите
all
, который возвращает отношение.При запуске метода типа
blockquote>def self.subjects
в ActiveRecord :: Relation, как мне получить доступ к самому объекту ActiveRecord :: Relation?Когда метод вызывается в объекте Relation,
self
является отношением (в отличие от класса модели, в котором он определен).
Вы можете преобразовать массив объектов arr
в ActiveRecord :: Relation, как это (предполагая, что вы знаете, какой класс являются объектами, что вы, вероятно, делаете)
MyModel.where(id: arr.map(&:id))
Вы должны использовать where
, но это полезный инструмент, который вы не должны неохотно использовать. И теперь у вас есть однострочное преобразование массива в отношение.
map(&:id)
превратит ваш массив объектов в массив, содержащий только их идентификаторы. И передача массива в предложение where будет генерировать инструкцию SQL с IN
, которая выглядит примерно так:
SELECT .... WHERE `my_models`.id IN (2, 3, 4, 6, ....
Имейте в виду, что порядок массива будет потерян - Но поскольку ваша цель состоит только в том, чтобы запустить метод класса в коллекции этих объектов, я предполагаю, что это не будет проблемой.
Ну, в моем случае мне нужно преобразовать массив объектов в ActiveRecord :: Relation, а также отсортировать их с определенным столбцом (например, id). Поскольку я использую MySQL, полевая функция может быть полезна.
MyModel.where('id in (?)',ids).order("field(id,#{ids.join(",")})")
SQL выглядит так:
SELECT ... FROM ... WHERE (id in (11,5,6,7,8,9,10))
ORDER BY field(id,11,5,6,7,8,9,10)