1) С помощью простой формы вы можете передавать параметры для ввода, метки и оболочки. Я бы стилизовал метку, чтобы использовать классы кнопок, и установил display: none
для самого ввода, так как щелчок по метке также установит флажок.
eg.
= f.input_field :some_checkbox, input_html: { style: "display: none"}, label_html: { class: "btn btn-primary"}
Более того, вы можете поставить флажок перед меткой, чтобы использовать псевдокласс :checked
для изменения стиля метки:
= f.input_field :some_checkbox, input_html: { style: "display: none"}
= f.label :some_checkbox, class: "btn btn-primary"
Затем в вашем CSS вы можете объявить: input:checked + label { background-color: grey; }
например. http://codepen.io/anon/pen/doqZyp
2) Вы можете передавать атрибуты данных с хешем data: {}
, например.
= f.input_field :some_checkbox, input_html: { style: "display: none"}, data: {target: "#recurringGift", toggle: "collapse"}
Имейте в виду, что ваше соглашение требует, чтобы атрибуты данных использовали дефисы для разделения слов (например, data-some-attribute=""
), но рельсы потребуют подчеркивания (например, data: {some_attribute: ""}
person
Benjamin
schedule
21.07.2015