嗨,我想通过
检查我的RESTparams
集合中的布尔值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]
。