gpt4 book ai didi

ruby - 为什么这个 haml 代码块给出 'syntax error, unexpected keyword_ensure, expecting $end'

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

= tabs_tag(:open_tabs => { :id => "menu" }) do |tab| 
- menu_tabs.each do |menu_tab|
- if !menu_tab.only_if.nil?
- if menu_tab.only_if.call
= tab.send menu_tab.tab_name, menu_tab.display_name, menu_tab.path, :span => "arrow-down"
- if !menu_tab.child_elements.blank?
%ul
- menu_tab.child_elements.each do |child_tab|
%li
=link_to child_tab.display_name, child_tab.path
- else
= tab.send menu_tab.tab_name, menu_tab.display_name, menu_tab.path

错误信息是

app/views/menu_builder/_tab_view.html.haml:15: syntax error, unexpected keyword_else, expecting keyword_end
app/views/menu_builder/_tab_view.html.haml:21: syntax error, unexpected keyword_ensure, expecting $end

(顺便说一句,行号也是错误的,我不知道这是不是 haml 问题)

我检查了缩进,一切都应该是正确的,其他应该对应 if !menu_tab.only_if.nil?,所以我不明白为什么会出现此错误消息。

最佳答案

我猜这是因为你正在这样做:

= tabs_tag(:open_tabs => { :id => "menu" }) do |tab| 

= tab.send menu_tab.tab_name, menu_tab.display_name, menu_tab.path, :span => "arrow-down"

然后将内容嵌套在 HAML 中非法的内容之下。当您尝试这样做时,您会遇到同样的错误:

= render :partial => "some/view", :locals => { :local_var => @var }
- if something
-# do something

HAML 会因此而窒息,因为它不知道如何在部分文件中呈现 if 语句(基于间距、if 语句在其中的位置等)。同样的事情也适用于其他代码助手,例如您正在使用的选项卡。

关于ruby - 为什么这个 haml 代码块给出 'syntax error, unexpected keyword_ensure, expecting $end',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8346513/

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