rails simple_form 控制器#create as HTML

rails simple_form Controller#create as HTML

我有一个 simple_form_for 的问题, 如果我 select 我的表单中有很多数字,我有回滚,无法验证。

我有这个错误:

Processing by SudokusController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"Qafet...", "sudoku"=>{"number"=>"1, 2"}, "commit"=>"Submit"}

但在终端 (rails c) 中可以正常工作....

我无法解决这个问题:

_form.html.erb:

<%= simple_form_for @sudoku do |f| %>  
<% (1..9).each do |x| %>
      <div class="checkbox">
        <label>
          <input type="checkbox" name="sudoku[number][]" id="optionsCheckbox<%= x %>" value="<%= x %>" />
          <%= x %>
        </label>
      </div>
    <% end %>
<% end %>

sudoku.rb:

validates :number, presence: true

在数独控制器中:

def sudoku_params
    params.require(:sudoku).permit(:number)
end

在我的数据库中

数独(数字:字符串)

感谢您的帮助

您的参数行 "sudoku"=>{"number"=>"1, 2"} 看起来不适合复选框列表。问题可能出在您打印复选框 HTML 的方式上。尝试将其更新为:

<input type="checkbox" name="sudoku[number][]" id="optionsRadios<%= x %>" value="<%= x %>" />

PS。有空格,字段名已更改

我将控制器更改为:

def sudoku_params
    params.require(:sudoku).permit(number:[])
end

我解决了我的问题

感谢大家