今天在学习rails中的时候碰到这样一个问题,
我的表是这样子的,
create table books(
id not null,
name text not null
)
create table persons
(
id int not null,
book_id int not null,
name varchar(100) not null
)
修改view的_form.html
java 代码
- <% form_tag :action => 'update', :id => @bookdo %>
- <p><label for="book_nam">书名:</label>
- <%= text_field 'product', 'goodsname' %>
- <% @persons.each do |@person %>
- ><label for="person_name">所有者:</label>
- <%= hidden_field_tag ("person[][id]", @person[:id], "size" => "0") %>
- <%= text_field_tag ("person[][name]", @person[:name], "size" => "10") %>
- <% end %>
- <%= submit_tag 'Edit' %>
- <% end %>
显示的效果是这样子的
书名; ruby on rails
所有者1 : jackdraw
所有者2: karen
现在我修改书名,和所有者三条数据的名字
我在controller中按常规的处理,book 是先find([params[:id]])再update没有问题,
但下面所有者的两条数据就有问题了,我传过去的params是这样子的,{id=>"1",name=>"jackdraww"},{id=>"2",name=>"karen2"}那我应该怎么样来处理这些params呢,是自己组装sql还是怎么样,在一些资料会用form数组来解决这个问题,但只能一条条修改,而不能一次性修改,不知道有什么好的解决办法,这方面的资料也相对比较少,我在想是不是可以在写一个插件来专门处理这种情况会比较好一些