【发布时间】:2009-04-07 14:50:31
【问题描述】:
在为 Ruby on Rails 应用程序中的对象编写“创建”方法时,我使用了两种方法。为了更清晰和更一致的代码,我想使用一种方法。我将在下面列出这两种方法。有谁知道一个比另一个更好吗?如果有,为什么?
方法一:
def create1
# is this unsecure? should we grab user_id from the session
params[:venue]['user_id'] = params[:user_id]
begin
venue = Venue.create(params[:venue])
@user_venues = @user.venues
render :partial => 'venue_select_box', :success => true, :status => :ok
rescue ActiveRecord::RecordInvalid
render :text => 'Put errors in here', :success => false, :status => :unprocessable_entity
end
end
方法二:
def create2
# is this unsecure? should we grab user_id from the session
params[:venue]['user_id'] = params[:user_id]
venue = Venue.new(params[:venue])
if venue.save
@user_venues = @user.venues
render :partial => 'venue_select_box', :success => true, :status => :ok
else
render :text => 'Put errors in here', :success => false, :status => :unprocessable_entity
end
end
【问题讨论】:
-
我想你的意思是“创造!”不是方法 1 中的“创建”。“创建”不会引发异常;它只是在验证错误时返回 false。
-
你说得对,谢谢指出
标签: ruby-on-rails ruby activerecord rescue