gpt4 book ai didi

ruby - 条件逻辑在 haml 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:33 26 4
gpt4 key购买 nike

我有一个 HAML 模板,如下所示(也使用 Sinatra,不确定这是否重要):

- @email = params[:email]
EMAIL: x#{@email}#{params[:email]}#{@email.to_s.empty?}x

-if #{@email.to_s.empty?}
%form{ :action => "/", :method => "post"}
%fieldset
%input{:type => "text", :name => "email", :class => "text"}
%input{:type => "submit", :value => "Notify me!", :class => "button"}
-else
Thank you for your interest!

我有用于调试的顶级输出。当我最初加载页面时,我看到“EMAIL:xtruex”和表格,表明参数为空......一切都按计划进行。

现在,当我在表单中填写“testing@gmail.com”并单击按钮时,它会重定向回“/”,我会看到“EMAIL: xtesting@gmail.comtesting@gmail.comfalsex”,它告诉我我的条件逻辑应该有效。

但我仍然看到表单,我的 else 语句没有被执行...if 语句仍在被触发。

我猜这是一个简单的格式问题。有人可以帮忙吗?

为了以防万一,我的 Sinatra 应用文件很简单:

get '/' do
haml :index
end

post '/' do
User.create(:email => params["email"])
haml :index
end

谢谢

最佳答案

这个if语句永远为真

-if #{@email.to_s.empty?}

那是因为您正在使用 #{} 创建一个字符串,并且只有 nil 和 false 会翻转 if。

所以你需要这样写

-if @email.blank?

更新:

这个不太对,看看@matt的评论

关于ruby - 条件逻辑在 haml 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11766035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com