`
jackdraw
  • 浏览: 54803 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

rails 中关于 一个form如何修改两个关联表数据

阅读更多

 

今天在学习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 代码
  1. <% form_tag :action => 'update', :id => @bookdo %>   
  2.  <p><label for="book_nam">书名:</label>   
  3. <%= text_field 'product', 'goodsname'  %>   
  4.  <% @persons.each do |@person %>  
  5. ><label for="person_name">所有者:</label> 
  6. <%= hidden_field_tag ("person[][id]"@person[:id], "size" => "0") %>   
  7. <%= text_field_tag ("person[][name]"@person[:name], "size" => "10") %>    
  8.   <% end %>   
  9.   <%= submit_tag 'Edit' %>   
  10. <% 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数组来解决这个问题,但只能一条条修改,而不能一次性修改,不知道有什么好的解决办法,这方面的资料也相对比较少,我在想是不是可以在写一个插件来专门处理这种情况会比较好一些

分享到:
评论
3 楼 hideto 2007-07-13  
不用form_for,用form_tag
form_for和model绑定,而form_tag不是
form_tag想传什么参数都行,没有约束
2 楼 jackdraw 2007-07-13  
如果只是改变的所有都的话还好,我的意思是这样子的
有这样一张form
书名 :ruby on rails 
描述 :关于ruby 的书快速开发等等
----------------------------
此书出版社:
出版社名称    出版时间  出版数量
  新华社       2007-09-09  100,000
  华南出版社   2007-09-09  10,00
线上面是一张表,出版社是另一张表,
我现要现时间更新书的描述,出版社的名称和数量
在一个form中如何来处理?
1 楼 hideto 2007-07-12  
用multiple select来选择作者

相关推荐

Global site tag (gtag.js) - Google Analytics