【问题标题】:Adding if validates in rails在 Rails 中添加 if 验证
【发布时间】:2016-04-20 16:49:33
【问题描述】:

我搜索一个解决方案,要求选择多个响应 (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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 simple-form ruby-on-rails-5


    【解决方案1】:
    #try this
        private
        def checks_must_be_3
          unless check.count == 3
            errors.add(:base , "You must select exactly 3 checks")
          end
        end
    

    【讨论】:

    • 谢谢,我有这个错误:参数数量错误(给定 0,预期 1+)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    相关资源
    最近更新 更多