Rails应用程序中的Javascript警报-参数哈希复选框
我正在开发一个Rails应用程序,它使用外部api进行身份验证。如果同时使用相同的登录凭据,则应用程序必须提醒第二个用户已在进行会话。这需要是一个带有“ok”框的JavaScript警报,并且返回值必须作为标志传递给api以终止第一个会话 我对其中的一部分有一些想法,但没有统一起来 由警报框触发的登录表单中的隐藏输入 我也尝试了这个警报,但我不确定如何将“msg”传递到JavaScript中,这甚至不能解决参数问题Rails应用程序中的Javascript警报-参数哈希复选框,javascript,ruby-on-rails,ruby-on-rails-3,Javascript,Ruby On Rails,Ruby On Rails 3,我正在开发一个Rails应用程序,它使用外部api进行身份验证。如果同时使用相同的登录凭据,则应用程序必须提醒第二个用户已在进行会话。这需要是一个带有“ok”框的JavaScript警报,并且返回值必须作为标志传递给api以终止第一个会话 我对其中的一部分有一些想法,但没有统一起来 由警报框触发的登录表单中的隐藏输入 我也尝试了这个警报,但我不确定如何将“msg”传递到JavaScript中,这甚至不能解决参数问题 login_controller.rb elsif body['Valid
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>
login\u controller.rb
elsif正文['ValidationMessage']=='OtherSessionActive'
flash[:alert]=auth_config['session_alert']
将\重定向到登录\路径并返回
其他的
login.html.erb
警报(#{msg})
“flash{name}”%>
任何想法都将不胜感激 一种方法(但不是好的做法)如下:
<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>
$(function(){//如果您使用的是jquery
警报(“”)
})
“flash{name}”%>
我喜欢的方式是:
使用以下gem:
您可以从控制器将消息分配给javascript对象。并且可以直接从javascript文件显示警报。以下是一种方法(但不是好的做法):
<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>
$(function(){//如果您使用的是jquery
警报(“”)
})
“flash{name}”%>
我喜欢的方式是:
使用以下gem:
您可以从控制器将消息分配给javascript对象。并且可以直接从javascript文件显示警报。完成警报。没有使用erb javascript_标记。我想使用jquery获取警报框的值,并将其传递给隐藏的输入。或者类似的?警报已经完成了。没有使用erb javascript_标记。我想使用jquery获取警报框的值,并将其传递给隐藏的输入。或者类似的?为什么这种方法不是好的实践?我现在的主要问题是,无论我是否使用这个gem,我仍然需要将警报中的数据(我实际上使用的是confirm)获取到一个params散列中,这样我就可以在控制器操作中使用它。更不用说它非常模糊,而且不鼓励使用js inside view和ruby块。因此,如果您查看当前上下文,即使在生成错误消息时,您也会看到一些含糊不清的错误消息,例如当您更新记录ftom控制器或创建时,或任何其他错误消息或消息将提示警报。这可能不是商业目的。因此,如果您单独将消息传递给js,并且处理来自js的警报消息,那么您当前的flash通知只能用于通知。为什么这种方法不是好的做法?我现在的主要问题是,无论我是否使用这个gem,我仍然需要将警报中的数据(我实际上使用的是confirm)获取到一个params散列中,这样我就可以在控制器操作中使用它。更不用说它非常模糊,而且不鼓励使用js inside view和ruby块。因此,如果您查看当前上下文,即使在生成错误消息时,您也会看到一些含糊不清的错误消息,例如当您更新记录ftom控制器或创建时,或任何其他错误消息或消息将提示警报。因此,如果您单独将消息传递给js,并且处理来自js的警报消息,那么您当前的flash通知只能用于通知。