rails simple_form Controller#create as HTML

时间:2016-04-19 17:22:40

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

我有一个simple_form_for的问题, 如果我在表单中选择了多个号码,我会回滚,无法验证。

我有这个错误:

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

但在终端(轨道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(数字:字符串)

坦克为你提供帮助

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

我将控制器更改为:

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

我解决了我的问题

全部谢谢