论坛首页 入门技术论坛

单表单提交 一次能修改多个关联数据库表吗?

浏览 2722 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-06-11  
单表单提交  一次能修改多个关联数据库表吗?

一个页面表单涉及2个数据库表是,提交的时候怎么同时修改2个数据库表。
比如:

表1:people:
id
name
age

表2:mobile:
id
phonenum
people_id

表1和表2之间的关系:
people.rb
class People < ActiveRecord::Base
  has_many :mobiles
end

mobile.rb
class Mobile < ActiveRecord::Base
  belongs_to :people
end

在一个/views/peoples/edit.rhtml页面中显示people.name,people.age,people.mobiles所有手机号码。这个时候页面提交的时候怎么同时修改这2个表的数据?
用 @people.update_attributes(params[:people]) 能实现吗?
   发表时间:2007-06-11  
PeopleController:
def update
  @person = People.find(parmas[:id])
  @person.update_attributes(params[:person])
  for mobile in @person.mobiles
    mobile.update_attributes(params['mobiles'][mobile.id])
  end
end


_form.rhtml
<%= text_field :person, :name%>
<% for mobile in @people %->
  <%= text_field_tag "mobiles[${mobile.id}]", mobile.number>
<% end %>


以上伪代码,大概就是那么个意思。不困难的。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics