Предварительно установите флажок с помощью Rails Simple_form - PullRequest
26 голосов
/ 07 ноября 2010

Я использую Simple_Form с Rails 3, и это здорово. У меня простой вопрос. Я могу создать флажок, используя f.input, если тип является логическим за кулисами. Тем не менее, я хотел бы, чтобы это было предварительно выбрано как правда.

Есть ли способ сделать это через представление?

Ответы [ 6 ]

97 голосов
/ 16 августа 2011

Если вы не хотите или не можете обновить свою миграцию, чтобы выполнить ответ 'PerfectlyNormal', то вы можете добавить в конец своего f.input следующее:

:input_html => { :checked => true }

Итак, это будетстать:

= f.input :some_flag, :input_html => { :checked => true }

Надеюсь, что помогает!

16 голосов
/ 05 декабря 2010

лучший способ - установить значение по умолчанию в вашей модели, например,

create_table :my_table do |t|
  ...
  t.boolean :my_boolean, :default => true
  ...
end

, который будет выбран simple_form, и установите флажок по умолчанию.

Более простой способ - сделать это, как говорит Дейв, и просто принудительно установить значение в 1, но если проверка не удалась, и вы снова отобразите форму, она все равно будет проверена, независимо от того, как она выглядела, когда форма была представленный.

8 голосов
/ 23 апреля 2014

Это сработало для меня, который проверяет только один флажок со значением "Нет"

<%= f.input :notify, label: "Notification", as: :check_boxes, collection: ["None", "Daily", "Weekly", "Monthly", "Quarterly", "Yearly"], :item_wrapper_class => 'inline', :checked => ["None", true] %>
3 голосов
/ 16 ноября 2014

Я только что наткнулся на этот пост, и то, что сработало для меня, похоже на последний ответ - но короче.Просто инициализируйте объект с желаемой настройкой:

def new
  Object.new(my_boolean: true)
end
2 голосов
/ 09 июня 2011

На мой взгляд, для этого можно установить значение атрибута в контроллере:

@some_object.some_flag = 1

2 голосов
/ 28 ноября 2010

Это должно работать:

= f.input :some_flag, :input_html => { :value => '1' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...