mater/slave table的新增
2012-01-03 23:05:21 +0800 由 chiayi
在 Ruby on Rails 節點 中發起
最後由 chitsung 於2012-01-04 12:41:29 +0800回應
, 315次閱讀
class User < ActiveRecord::Base
has_one :vendor
end
class Vendor < ActiveRecord::Base
belongs_to :user, :dependent=>:destroy
end
請問該如何同時新增user和vendor資料?
我用下列方式同時新增user和vendor,在user沒新增成功時,該怎麼做讓view可以顯示資料輸入有誤?
謝謝
# views/vendor/new.html.erb
def create
@user=User.new(params[:user])
if @user.save
@vendor=Vendor.new(params[:vendor])
if @vendor.save
redirect_to :index
else
render :new
end
else
logger.debug "[debug] #{@user.errors.inspect}"
render :new
end
end
截至 2012-01-04 12:41:29 +0800,共收到 3 條回應
chiayi
1樓, 於2012-01-04 10:36:46 +0800回應
我想一個action就做完兩個model的create
我在vendor的create裡怎麼把user.errors加到vendor.errors,讓view可以顯示出來?
或是這個設計不好,我該怎麼做?
感謝
chiayi
2樓, 於2012-01-04 10:57:55 +0800回應
已解決
@user.errors.full_messages.each do |error|
@vendor.errors.add(:base, error)
end
chitsung
3樓, 於2012-01-04 12:41:29 +0800回應
題外話:何不在 user 的 controller 裡處理 user 的新增,用 user 的 observer 來建立 vendor 的資料?