2015-07-27 2 views
0

Я создаю простую форму рельсов, которая имеет два поля: коллекцию и флажок. Значения внутри коллекции определяются на основе выбора флажка или нет.Rails Simple Form Checkbox variable undefined

<%= f.input :id, :collection => (@s if show_all_shoppers || @rs), :label_method => :name, :value_method => :id, :label => "Shopper", :include_blank => true %> 

<%= f.input :show_all_shoppers, :as => :boolean, :label => false, :input_html => { :'data-label' => 'Display all shoppers'} %> 

Но, я получаю undefined local variable or method show_all_shoppers, когда я пытаюсь это. Обратите внимание: :id - это полевое имя внутри моего экземпляра модели, но show_all_shoppers не является

Как это исправить?

ответ

0

Точно я не знаю, что вы пытаетесь сделать, но должен быть выполнен какой-то javascript, когда флажок установлен. В модели создания attr_accessor вроде этого:

attr_accessor :show_all_shoppers 

И тогда в вашей форме вы можете сделать, как:

<%= f.input :show_all_shoppers, :as => :boolean, :label => false, :input_html => { :'data-label' => 'Display all shoppers'} %> 

Существует еще одно решение, но я никогда не пробовал, так что не знаю, будет работать или нет:

<%= f.input :show_all_shoppers do %> 
    <%= check_box_tag 'show_all_shoppers', 'Display all shoppers', false %> 
<% end %> 

Источник: Rails Simpleform with non-model inputs

Может быть у ou может дать ему попробовать.

Надеюсь, это поможет.

+0

да, мне не нужно это значение в форме представить. Но я получаю эту ошибку: undefined method 'check_box_tag 'для # gazubi

+0

На самом деле ответ был для формы rails, и вы используете' simple_form', я этого не знал. Попробуйте обновленный ответ – Deep

+0

Мне нужно создать attr_Accessor, если я не хочу использовать это значение в форме submit? – gazubi

0
<%= check_box_tag 'show_shoppers', 'show_all_shoppers', false %><small> Show All Shoppers</small> 

работает вместе с правками в JavaScript/JQuery

Смежные вопросы