Ruby on rails 4 未通过id的轨道

Ruby on rails 4 未通过id的轨道,ruby-on-rails-4,parameters,Ruby On Rails 4,Parameters,我是rails新手。目前我面临的问题与它。我有3个模型,它是 order, task, and order task. 在ordertask中,我尝试将id从show.html传递到edit.html,但rails只传递id 而不是身份证号码 这是我的show.html.erb 任务 地位: | 您应该将编辑链接放在循环中。。。由于@status包含多个OrderTak,并且每个ordertask都应该有自己的编辑页面: <p id="notice"><%= notic

我是rails新手。目前我面临的问题与它。我有3个模型,它是

order, task, and order task.
在ordertask中,我尝试将id从show.html传递到edit.html,但rails只传递id

而不是身份证号码

这是我的show.html.erb

任务 地位: |
您应该将编辑链接放在循环中。。。由于@status包含多个OrderTak,并且每个ordertask都应该有自己的编辑页面:

<p id="notice"><%= notice %></p>


<table class="table table-hover">
    <tr>
        <td>Task
        </td>
        <td>Status:
        </td>
        <td>Action:</td>
    </tr>
    <tr>
        <% @status.each do |i| %>
        <td><%= i.task_id %>
        </td>
        <td><%= i.status %>
        </td>
        <td><%= link_to 'Edit', edit_orders_task_path(i) %></td>

    </tr>
    <% end %>
</table>

<%= link_to 'Back', orders_tasks_path %>

任务 地位: 行动:

编辑:但我想指出的是,大多数情况下,您的连接模型不需要控制器。所以我不知道您为什么认为需要它,大多数逻辑可以从OrdersController或TasksController构建。

我认为您的
@status
变量是对象的集合,但是
show
edit
操作需要单个对象。尝试将单个对象传递给这些操作您的问题将得到解决您可以这样做
edit\u orders\u task\u path(@status.first)
edit\u orders\u task\u path(@status.last)
这将传递单个对象来编辑操作。是的,谢谢现在我在_form.html中显示连接表时遇到了问题。我应该在表单中创建另一个循环以显示任务id及其状态吗?在
编辑
表单上,您想编辑单个
订单任务
还是多个
订单任务
?由于订单任务是一个联接表,我想能够根据订单id编辑多个状态。是否可能??我在循环过程中有点迷路了。我明白了。。我认为每个模型都必须有自己的控制器,因为联接表涉及多对多关系。我将尝试此代码。thx!:DYeah您不应该直接处理多对多关系中的记录,始终使用相关任务或顺序来分配关系(复选框或多选)。如果联接表中有其他列,则应使用嵌套表单(在这种情况下请查看coccon gem)。我几乎忘记了我这样做的主要原因,我只想根据
订单id
任务id
更新任务的特定
状态。现在我正在研究蚕茧宝石,希望我能做到。