我正在开发一个使用外部api进行身份验证的Rails应用。如果同时使用相同的登录凭据,则应用程序必须提醒第二个用户已经有正在进行的会话。这需要是带有'ok'框的JavaScript警报,并且返回必须作为标志传递给api以终止第一个会话。
我对其中的部分内容有所了解,但它并没有结合在一起。
登录表单中由警告框触发的隐藏输入?
我也尝试过这个警报,但我不确定如何将'msg'传递给JavaScript,这甚至不能解决params问题。
login_controller.rb
elsif body['ValidationMessage'] == 'OtherSessionActive'
flash[:alert] = auth_config['session_alert']
redirect_to login_path and return
else
login.html.erb
<div id='flash'>
<% flash.each do |name, msg| %>
<% if name == :alert %>
<script>
alert(#{msg})
</script>
<% else %>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
<% end %>
<% end %>
</div>
任何想法都将不胜感激。
答案 0 :(得分:0)
一种方式(但不是好的做法)如下:
<div id='flash'>
<% flash.each do |name, msg| %>
<% if name == :alert %>
<script type='text/javascript'>
$(function(){ // if you are using jquery
alert("<%= msg %>")
})
</script>
<% else %>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
<% end %>
<% end %>
</div>
我的首选方式是: 使用以下gem: https://github.com/gazay/gon
您可以从控制器为javascript对象分配消息。并且可以直接从您的javascript文件中显示警报。