【发布时间】:2010-12-14 07:02:37
【问题描述】:
所以我在预订模型中有一个名为 add_equip 的方法。此方法会进行一些检查以确保添加的设备有效(不与另一个预订冲突)。
检查有效。如果不应该添加一件额外的设备,它不是,如果它应该是。
问题是我不知道如何将消息发送回控制器以放入闪存消息中?我知道我一定在这里遗漏了一些东西,但是我已经用谷歌搜索了几个小时,并没有真正找到任何明确的解释如何将错误传递回控制器,除非它们是验证错误。
在 reservations_controller 中添加_equip
def add_equip
@reservation = Reservation.find(params[:id])
@addedEquip = Equip.find(params[:equip_id])
respond_to do |format|
if @reservation.add_equip(@addedEquip)
flash[:notice] = "Equipment was added"
format.html { redirect_to(edit_reservation_path(@reservation)) }
else
flash[:notice] = @reservation.errors
format.html { redirect_to(edit_reservation_path(@reservation)) }
end
end
end
在预订模型中添加装备
def add_equip equip
if self.reserved.find_by_equip_id(equip.id)
self.errors.add_to_base("Equipment Already Added")
return false
elsif !equip.is_available?(self.start, self.end)
self.errors.add_to_base("Equipment Already Reserved")
return false
else
r = Reserved.new
r.reservation = self
r.equip = equip
r.save
end
end
任何帮助将不胜感激。我知道我在这里缺少一些基本的东西。
【问题讨论】:
标签: ruby-on-rails error-handling