1
我想提出一個網格格式如下面的一個,空的屬性列表來改變Ruby on Rails的
show.html.erb
<%= form_for :datadef, url: update_all_vmodule_path do |fdf|%>
<table id="csvfiles" class="display" width="100%">
<thead>
<tr>
<th width="10%">Column No</th>
<th width="20%">Column name</th>
<th width="20%">Data type</th>
<th width="15%">Column format</th>
<th width="10%">Length</th>
<th width="25%">Comments</th>
</tr>
</thead>
<tbody>
<% @datadefrecords.each do |ddre| %>
<%= fields_for "datadef_records[]", ddre do |dr_fld| %>
<tr>
<td><%= ddre.column_no %></td>
<td><%= ddre.column_name %></td>
<td><%= dr_fld.collection_select :column_datatype, Datadef.select(:column_datatype).uniq, :column_datatype, :column_datatype, {:prompt => true} %> </td>
<td><%= dr_fld.text_field :column_format %></td>
<td><%= dr_fld.text_field :column_length %></td>
<td><%= dr_fld.text_field :comments %></td>
</tr>
<% end %>
<% end %>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td colspan="2"><%= fdf.submit 'Save' %> <%= link_to("<button>Cancel</button>".html_safe, cancelmodal_vmodule_path) %></td>
</tr>
</tbody>
</table>
<% end %>
<% end %>
這我要求提交的方法
def update_all
session[:datadef] = nil
@updatedatadef = Datadef.all.where(:id => params[:datadef_records]).update_all(update_all_params)
redirect_to migproject_path(params[:vmodule][:migproject_id])
end
這是強大的參數
def update_all_params
params.require(:datadef_records).permit(:column_datatype, :column_format, :column_length, :comments)
end
這是我如何從形式
{"utf8"=>"✓",
"authenticity_token"=>"QrX8JYYYQOlfwKgAABJd0+A7VpugS2Y6n8doDsuKqeM=",
"datadef_records"=>{"12"=>{"column_datatype"=>"varchar",
"column_format"=>"2",
"column_length"=>"2",
"comments"=>"2"},
"13"=>{"column_datatype"=>"varchar",
"column_format"=>"2",
"column_length"=>"2",
"comments"=>"2"}},
"commit"=>"Save",
"id"=>"2"}
的參數,但我得到這個「屬性的空單變化」錯誤,是不是讓我寫呢在桌子裏。而且我無法確定可能的錯誤。
在此先感謝。
「update_all_params」的輸出是什麼 – PhilVarg
表中有2條記錄的id爲(12,13)的記錄。
「column_datatype」=> 「VARCHAR」, 「column_format」=> 「2」, 「column_length」=> 「2」, 「評論」=> 「2」
這些數據應該被寫入。 –