Ruby on rails 带有复选框的简单字段错误
晚安,朋友们 在一个多到的表单中,我需要显示给定类(工具)的所有对象,旁边有一个复选框字段和文本字段。我的表格如下:Ruby on rails 带有复选框的简单字段错误,ruby-on-rails,fields-for,Ruby On Rails,Fields For,晚安,朋友们 在一个多到的表单中,我需要显示给定类(工具)的所有对象,旁边有一个复选框字段和文本字段。我的表格如下: = simple_form_for @service, html: { class: 'form-horizontal' } do |f| - @tools.each do |tool| = f.simple_fields_for :instrumentalisations, tool do |i| = i.input :tool_id, to
= simple_form_for @service, html: { class: 'form-horizontal' } do |f|
- @tools.each do |tool|
= f.simple_fields_for :instrumentalisations, tool do |i|
= i.input :tool_id, tool.id, as: :check_boxes
= i.input :amount
但我得到了以下错误:
Undefined method `tool_id 'for # <Tool: 0x007faef0327c28>
Did you mean To_gid
谢谢大家! 错误很简单:工具没有
工具id
方法。但是,为什么要将此请求发送给工具对象而不是工具化对象
因此,您试图创建一些工具化
,但您将工具作为对象传递:
f.simple_fields_for :instrumentalisations, **tool** do |i|
需要一个记录\u名称
,在本例中是:指令化
,第二个参数是记录\u对象
,它应该是指令化
对象而不是工具
对象
因此,要修复它,必须传递一个工具化
对象。您可以通过以下方式实现这一点:
f.simple_fields_for :instrumentalisations, Instrumentalisation.new(tool: tool) do |i|
当然,这不是最好的解决方案,因为如果编辑此对象,将构建大量新的工具化
我建议使用,这样更容易处理嵌套表单 事实上,这个字段:tool_id是一个外键会干扰某些东西?我注意到,当我从=f.simple_fields\u for:instrumentalizations,tool do | I |
更改为=f.simple_fields\u for:instrumentalizations do | I |
时,它向我介绍了几个工具对象,实际上似乎是重复的,那不是我所需要的。我想显示tools类的所有对象,用一个复选框字段来标记它们,另一个文本字段来追加项目的数量。那样的话,茧宝石解决不了我的问题,显示的内容与我要查找的内容尽可能接近,但是我需要再添加一个字段并使用。错误是您将工具对象传递到Instrumentalizations循环中。使用字段_传递一个新的工具化只是归档您尝试执行的操作的方法之一。
f.simple_fields_for :instrumentalisations, **tool** do |i|
f.simple_fields_for :instrumentalisations, Instrumentalisation.new(tool: tool) do |i|