RAILS传递更新表格的方法比创建新路线更简单的方法吗?

时间:2019-02-19 19:16:14

标签: ruby-on-rails

我有一个订单记录,其中包含多个管道/漏斗位置(pipe_part),每个位置都是通过创建pipe_record来记录的,该记录记录了该零件的人员和时间。

我正在尝试创建一个更新按钮,该按钮将发布编辑以更改pipe_record中的数据,因此我遍历订单记录,然后为每个已经具有pipe_record的位置创建一个表单,然后我要销毁或update,但是我无法过滤我的记录集以形成一个form_,因为它返回了一个关键问题

 <% @order.pipe.pipe_parts.order("priority").each do |part| %>
          <% if @pipe_records.where("pipe_part_id= ?",  part).present? %>
          <td>

                <% @pipe_position ||=part %>       
                <%= form_for @pipe_record.where("pipe_part_id= ?",  part)  do |f| %>

这将引发关键错误 #的未定义方法“ to_key”是什么意思? to_query to_ary

我在控制器中创建了pipe_records的第二次迭代,以防如下所示在pipe_record记录集中出现光标问题

   @pipes=Pipe.all.order("name")
   @pipe_records=@order.pipe_records
   @pipe_record=@order.pipe_records

我尝试在第二次尝试中使用

<% if @pipe_records.where("pipe_part_id= ?",  part).present? do |pipe_record|%>

然后致电

<%= form_for pipe_record do |f| %>

并且将要为更新页面创建新的路由和控制器,因为似乎无法获取ID传递给@pipe_record,但我知道我的解决方案中有明显的遗漏或结构错误。 / p>

1 个答案:

答案 0 :(得分:0)

.first!

我忘了@pipe_record是一个集合

<%= form_for @pipe_record.where("pipe_part_id= ?",  part).first  do |f| %>

已解决