加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails – 从模型获取不是验证错误的错误消息

发布时间:2020-12-16 19:26:38 所属栏目:百科 来源:网络整理
导读:所以我在一个名为add_equip的预留模型中有一个方法.该方法进行一些检查,以确保添加的设备有效(不与另一个预留冲突). 检查工作.如果添加的设备不应该添加,那么它不是,如果是这样的话. 问题是我无法弄清楚如何将消息发送回控制器放入Flash消息中?我知道我必须
所以我在一个名为add_equip的预留模型中有一个方法.该方法进行一些检查,以确保添加的设备有效(不与另一个预留冲突).

检查工作.如果添加的设备不应该添加,那么它不是,如果是这样的话.

问题是我无法弄清楚如何将消息发送回控制器放入Flash消息中?我知道我必须在这里遗漏一些东西,但是现在已经google了几个小时了,除非是验证错误,否则无法找到任何明确的解释来如何传递错误备份控制器.

reservation_controller中的add_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

预约模式中的add_equip

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

任何帮助将不胜感激.我知道我在这里缺少一些基本的东西.

解决方法

使用add_to_base存储错误消息对我来说似乎很好,你只需要弄清楚如何把它放到视图中.

怎么样:

flash[:notice] = @reservation.errors.full_messages.to_sentence

假设你要重新显示表单,你也可以使用:

<%= f.error_messages %>

或者可能:

<%= error_messages_for :reservation %>

此外,您可能需要使用flash [:error],然后您可以使用视图中的CSS类将其颜色不同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读