Ruby on Rails 和 HAML 中的这段代码有什么问题?
What's wrong with this code in Ruby on Rails and HAML?
我的 Ruby Rails 版本是 4.2.3,这是 application_helper.rb 中的一个助手,它应该在 views/layouts/application 中打印 flash 通知。html.haml
def flash_message key, message, dismissible
dismiss = dismissible ? " alert-dismissible" : ""
content_tag :div, class: flash_class(key.to_sym) + dismiss do
if dismissible
content_tag(:button, {type: "button", class: "close", "data-dismiss" => "alert", "aria-label" => "Close"}) do
content_tag :span, {"aria-hidden" => "true"} do
"×"
end
end
end
content_tag :span, class: "glyphicon glyphicon-ok"
message
end
end
在 views/layouts/application.html.haml
- if flash.any?
- flash.each do |key, message|
= flash_message key, message, true
它不显示所有内容,它只显示第一个 div 和 class 以及很好的消息,但如果闪现消息可以关闭,我仍然需要关闭按钮,并且跨越字形 class.
<div class="alert alert-success alert-dismissible">message</div>
谢谢!
正如 SergioTulentsev 所建议的那样 content_tag 应该连接起来,但是为了让辅助函数正确地解析 HTML 而不是字面意思,消息变量应该跟在 .html_safe 方法之后。
感谢大家的帮助。
我的 Ruby Rails 版本是 4.2.3,这是 application_helper.rb 中的一个助手,它应该在 views/layouts/application 中打印 flash 通知。html.haml
def flash_message key, message, dismissible
dismiss = dismissible ? " alert-dismissible" : ""
content_tag :div, class: flash_class(key.to_sym) + dismiss do
if dismissible
content_tag(:button, {type: "button", class: "close", "data-dismiss" => "alert", "aria-label" => "Close"}) do
content_tag :span, {"aria-hidden" => "true"} do
"×"
end
end
end
content_tag :span, class: "glyphicon glyphicon-ok"
message
end
end
在 views/layouts/application.html.haml
- if flash.any?
- flash.each do |key, message|
= flash_message key, message, true
它不显示所有内容,它只显示第一个 div 和 class 以及很好的消息,但如果闪现消息可以关闭,我仍然需要关闭按钮,并且跨越字形 class.
<div class="alert alert-success alert-dismissible">message</div>
谢谢!
正如 SergioTulentsev 所建议的那样 content_tag 应该连接起来,但是为了让辅助函数正确地解析 HTML 而不是字面意思,消息变量应该跟在 .html_safe 方法之后。
感谢大家的帮助。