在一个表单中编辑多个记录 - Rails

时间:2013-05-23 15:48:15

标签: ruby-on-rails database forms controller nested-forms

我正在尝试使用一个表单编辑多个记录,因此用户可以编辑一些记录,然后在最后按提交而不是在每个记录之后。我发布了当前的代码,我收到了这个错误:

undefined method `connection_connection_path'

控制器

def show
  @customer = Customer.find(params[:id])
  @connection = @customer.connections
  respond_to do |format|
    format.html # show.html.erb
    format.json { render json: @customer }
  end
end

查看

<table class="table">
    <thead>
        <th>Interface</th>
        <th>Device</th>
        <th>Speed</th>
        <th>Site</th>
        <th>Capable</th>
        <th>Notes</th>

    </thead>
    <%= form_for(@connection) do |f| %>
    <% @connection.each do |l| %>
    <tr>
        <td><%= l.interface %></td>
        <td><%= l.device %></td>
        <td><%= l.speed %></td>
        <td><%= l.site.name%> </td>
        <td><%= f.check_box :check %></td>
        <td><%= f.text_field :notes %></td>

    </tr>
    <% end %>
            <tr><%= f.submit %></tr>
</table>
<% end %>

路由

resources :connections


resources :sites


resources :customer_sites


resources :customers

root :to => "customers#index"

1 个答案:

答案 0 :(得分:0)

那么你的提交按钮在哪里?它不应该在show中完成,也许您可​​以在控制器中创建一个新方法并执行多重编辑功能。

基本概念是当你有检查时,你需要将对象的数组传递给你的方法,然后逐个更新它们。或者你也可以用JS做到这一点。

参考这个railscast http://railscasts.com/episodes/165-edit-multiple

和这个stackoverflow Rails 3 Edit Multiple Records in a Single Form

这些资源可以通过谷歌轻松获得:D 如果还有问题,那就来这里再问一次