Rails 4从REST API重定向flash通知到ActiveAdmin



嗨,我想通过

检查我的REST params集合中的布尔值
if params[:myboolean] == true
  ...         
end

在我的api控制器和触发flash[:alert]事件时,条件是true在我的activeadmin板。我怎么能做到呢?

编辑

 def update
     respond_to do |format|
        if params[:myboolean] 
              Rails.logger.info "***boolean is true***"           
        end

我从未看到日志消息。我检查参数的方式已经错了吗?

我通过curl -u test -X PUT http://127.0.0.1:3000/api/...?myboolean=true -d ''发送参数,它在我的数据库中得到更新,所以我认为这不是参数的问题,更多的是我检查参数

的方式

参数默认作为字符串发送,它们并不总是神奇地更改为bool/整数,因此您必须更改检查为:

if params[:myboolean] == 'true'

注意引号,然后你是com,用相似来代替相似(两个字符串)。

你也可以让你的布尔值作为1或0,所以你可能也需要匹配它:

if ['true','1'].include? params[:myboolean].to_s

通过对参数执行to_s,您还确保如果它确实作为一个实际的bool通过,那么检查仍然会工作

在这种情况下,我通常会这样做:

puts "params: #{params}"

应该打印发送给该方法的所有参数,您应该查看是否设置了params[:myboolean]

最新更新