Slim Rails中给image_tag加style属性报语法错误如何解决
错误根因
你的语法错误来自Ruby方法调用的参数闭合位置错误:image_tag是Rails提供的视图辅助方法,所有参数(包括后面的style属性参数)都需要放在方法的参数范围内,你当前代码提前闭合了image_tag的参数括号,将style参数放在了方法外部,所以解析器遇到多余的逗号直接抛出语法错误。同时Slim对缩进敏感度极高,原有代码中image_tag行的缩进层级错误也可能触发额外解析异常。
修复代码
你可以选择以下任意一种修正写法:
- 保留括号,将style参数移入括号范围内
-@section.each.with_index(0) do |sect,index| .border id="section#{sect.id}" class="layout-section" name="#{sect.id}" style="position:absolute; height:#{sect.height}px; top:#{sect.position.split(",")[0]}px; left:#{sect.position.split(",")[1]}px; width:#{sect.width}px;" = image_tag(@allmedia[find_CorrespondingMedium_id(sect.id)[index]].file, style:"height:100%; width:100%") end
- 省略方法括号(Slim中Ruby方法调用的常用简化写法)
-@section.each.with_index(0) do |sect,index| .border id="section#{sect.id}" class="layout-section" name="#{sect.id}" style="position:absolute; height:#{sect.height}px; top:#{sect.position.split(",")[0]}px; left:#{sect.position.split(",")[1]}px; width:#{sect.width}px;" = image_tag @allmedia[find_CorrespondingMedium_id(sect.id)[index]].file, style:"height:100%; width:100%" end
内容的提问来源于stack exchange,提问作者mukesh mahara
相关产品推荐
相关产品推荐

