验证Rails 4虚拟属性数组

时间:2015-04-06 18:09:22

标签: ruby-on-rails ruby-on-rails-4

我的rails 4应用程序中有一个称为附件的虚拟属性数组。我在模型中将其声明为虚拟属性:

class ModelName
attr_accessor :attachments

我使用validate_presence_of

对此进行验证
 validates_presence_of :attachments

附件实际上是页面中的复选框:

<input class="attachments" id="attachments_" name="attachments[]" type="checkbox" value="1">

因为它是一个数组,我在强参数中将其添加为哈希:Source: http://patshaughnessy.net/2014/6/16/a-rule-of-thumb-for-strong-parameters

问题是,我不断收到错误消息,即使我在数组中选中了一个复选框,附件也不能为空。我究竟做错了什么?如果我调试,在模型级别,我看到附件字段为空

我的表格中的代码:

   <% (0..4).each do |index| %>
   <label class="checkbox-inline reduce_left_margin">
    <%= check_box_tag 'attachments[]', model::constant_array[index], false, class: 'attachments' %>
    <%= model::constant_array[index][0..2] %>
   </label>
   <% end %>

强大的参数:

def allow_params      
    params.require(:model_name).permit(:name,...., :attachments => [:text])     
end

解决方案:

我强大的参数不正确,必须按如下方式设置:

def allow_params      
    params.require(:model_name).permit(:name,...., :attachments => [])     
end

0 个答案:

没有答案