Я полагал, что это будет обычная потребность, но мне не удалось найти решение. Я следил за этим ASCIIкастом Райана Бейтса http://railscasts.com/episodes/302-in-place-editing?view=asciicast, и теперь у меня есть функциональные возможности редактирования на моем веб-сайте. Однако я думаю, что это не так интуитивно понятно, что эти записи вообще доступны для редактирования, поскольку они просто отображаются как простое текстовое представление текущего значения записи, пока вы не щелкнете по ним. Мне нужно что-то, чтобы раскрывающееся меню выбора отображалось по умолчанию, как в обычной форме, как показано на изображении. Есть ли способ сделать это с помощью best_in_place или rest_in_place?
best_in_place показать опцию выпадающего меню
Ответы (3)
Я знаю, что это не совсем тот ответ, который вы ищете, но вы можете стилизовать значения best_in_place, используя класс .best_in_place.
Я сделал что-то подобное на своем веб-сайте, что показывает, что значение можно редактировать:
.best_in_place {
padding-right: 18px;
background-image: url('*/ link to an edit icon /*');
background-size: 15px auto;
background-position: right center;
background-repeat: no-repeat;
cursor: pointer;
}
.best_in_place:hover {
background-color:#eeeeee;
}
Я думаю, вы хотите найти стили, которые применяются к состоянию наведения элемента, и скопировать их также в нормальное состояние элемента.
В инспекторе Chrome:
- Щелкните правой кнопкой мыши тег выбора и выберите «Проверить элемент».
- Щелкните правой кнопкой мыши элемент, как показано на вкладке «Элементы», и выберите «Принудительное состояние элемента», а затем «наведите указатель мыши».
Справа от инспектора теперь вы должны увидеть стили, которые применяются к состоянию :hover
элемента. Скопируйте их в свою таблицу стилей и удалите часть ": hover" в конце правила. Возможно, вам потребуется добавить в правило несколько дополнительных селекторов, чтобы убедиться, что вы не делаете это для всех выбранных элементов на всем сайте.
Раскрывающийся список - это поведение по умолчанию для best_in_place, если исходная форма вводится с помощью переключателей. В противном случае вы можете использовать: colllection, по крайней мере, для проверки новой записи данных. например в haml обновленный ответ должен быть красным, зеленым или синим:
.flex1=best_in_place :color, :type => :select, :collection => (["red","blue","green"])