-2

Я ищу решение, требующее нескольких вариантов ответа (3), whitout "check_must_be_3" У меня нет проблем. Если я добавлю это решение, у меня есть откат. Это моя идея, но, похоже, она не работает!Добавление, если проверка в рельсах

model.rb:

validates :check, presence: true 
validate :check_must_be_3 

    private 
    def checks_must_be_3 
     if !check != 3 
     errors[:base] << "You must select exactly 3 checks" 
     end 
    end 

HTML:

<%= simple_form_for @answer do |f| %> 
    <h3>Choose 3 answers</h3> 
    <ul> 
    <% (1..5).each do |x| %> 
     <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="answer[check][]" id="optionsCheckbox<%= x %>" value="<%= x %>" /> 
      <%= x %> 
     </label> 
     </div> 
    <% end %> 
    <%= f.button :submit, "Submit", class: "btn btn-primary" %> 
<% end %> 

контроллер:

private 

def answer_params 
    params.require(:answer).permit(check:[]) 
end 

ответ

2
#try this 
    private 
    def checks_must_be_3 
     unless check.count == 3 
     errors.add(:base , "You must select exactly 3 checks") 
     end 
    end 
+0

Спасибо, у меня есть эта ошибка: неверное число аргументов (данные 0, ожидаемый 1+) – Boboss

+0

Какая линия от того, какого файла является то, что ошибка? – margo

-1

Если я изменить строку в моем терминале у меня есть что:

`ArgumentError - wrong number of arguments (given 0, expected 1+): 
    app/models/answer.rb:10:in `check_must_be_3' 

Линии 10:

unless check.count == 3 
+0

Если вы не отвечаете на вопрос, пожалуйста, включите эту информацию как EDIT в исходный вопрос. –