我使用Rails 4和Bootstrap 3构建CRUD Web应用程序。
我有一个Invite模型,可让用户邀请其他用户加入该应用 - 目前正在使用。
这是我的InvitesController
:
class InvitesController < ApplicationController
def create
# some code
if @invite.save
# some code
redirect_to some_path, notice: 'Invitation was successfully sent.'
else
redirect_to another_path, alert: 'Invitation could not be sent: please make sure you enter a valid email address and choose a role.'
end
end
end
现在,当用户成功发送邀请时,他会被重定向到某个路径并获得 blue notice
正确地告诉他。
但是,如果用户未正确填写“邀请”表单并且无法成功发送邀请,则会将其重定向到同一视图(表单所在的位置)并获取 黄色 alert
告诉他表格中有错误。
我想将后者设为 red alert
,我认为Bootstrap允许我使用redirect_to another_path, error: 'Invitation could not be sent: please make sure you enter a valid email address and choose a role.'
这不起作用。
- - - -
更新:我在这里寻找的是一种使用.alert-danger
Bootstrap警报类的方法,我不想简单地将警报的颜色从黄色更改为红色
- - - -
实现我需要的Rails / Bootstrap方式是什么?
答案 0 :(得分:2)
以下是我完成此任务的方式:
首先,我创建一个helper method
将flash message type
翻译成bootstrap type
def bootstrap_class_for flash_type
case flash_type.to_sym
when :success
"alert-success"
when :error
"alert-danger"
when :alert
"alert-warning"
when :notice
"alert-info"
else
flash_type.to_s
end
end
然后我创建一个partial来根据其类型呈现存储在flash会话中的消息。
<% flash.each do |type, message| %>
<div class="alert <%= bootstrap_class_for(type) %> fade in">
<button class="close" data-dismiss="alert">×</button>
<%= message.html_safe %>
</div>
<% end %>