Ruby ERB嵌套<%= %>报错:link_to内调用activeLink助手方法问题
Rails导航链接激活状态设置问题解决
错误根源
你在link_to的ERB标签内部嵌套了另一层<%= %>标签,这违反了ERB的语法规则,导致模板解析报错。
正确写法
直接在class参数里调用助手方法,无需嵌套ERB标签:
<%= link_to "Home", root_path, class: "nav-link #{activeLink('home')}" %>
如果担心助手方法返回nil时产生多余空格,可以用数组拼接后去空:
<%= link_to "Home", root_path, class: ["nav-link", activeLink('home')].compact.join(' ') %>
助手方法优化
可以把方法简化成更符合Ruby风格的写法,同时建议遵循Ruby蛇形命名规范(把activeLink改成active_link):
def active_link(action_name) controller.action_name == action_name ? "active" : nil end
内容的提问来源于stack exchange,提问作者ジャマル
相关产品推荐
相关产品推荐

