best_in_place показать опцию выпадающего меню
Я подумал, что это будет общая необходимость, но не удалось найти решение. Я следил за этим ASCII-трансляцией Райана Бейтса http://railscasts.com/episodes/302-in-place-editing?view=asciicast и теперь у меня есть функция редактирования на месте на моем веб-сайте. Тем не менее, я думаю, что это не интуитивно понятно, что эти записи вообще доступны для редактирования, так как они просто отображаются как текстовое представление текущего значения записи, пока вы не нажмете на них. Я хочу что-то, чтобы выпадающий список отображался по умолчанию, как в обычной форме, как показано на рисунке. Есть ли способ сделать это с помощью best_in_place или rest_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 инспектор:
- Щелкните правой кнопкой мыши на теге select и выберите "Inspect element"
- Щелкните правой кнопкой мыши по элементу, как показано на вкладке "Элементы", выберите "Состояние элемента силы", а затем "зависание".
Теперь справа от инспектора вы должны увидеть стили, которые применяются к :hover
состояние элемента. Скопируйте их в свою таблицу стилей и удалите часть ": hover" из конца правила. Возможно, вам понадобится добавить несколько дополнительных селекторов в правило, чтобы убедиться, что вы не делаете это для всех вариантов выбора на всем сайте.
Раскрывающийся список - это поведение по умолчанию для best_in_place, если исходный ввод формы осуществляется с помощью переключателей. В противном случае вы можете использовать:colllection как минимум для проверки новой записи данных. например, в haml обновленный ответ должен быть красным, зеленым или синим:
.flex1=best_in_place :color, :type => :select, :collection => (["red","blue","green"])