我希望能够在模板中的render函数中动态选择模块名称。所以我尝试了这个但是我遇到了错误:
<%= render if i.compType == "mod" do MyProj.ModuleView else MyProj.ComponentView end, i.compName %>
最终结果将是:
<%= render MyProj.ModuleView, "module.html" %>
或
<%= render MyProj.ComponentView, "component.html" %>
最好的方法是什么?
答案 0 :(得分:2)
你只是缺少一对括号:
<%= render (if i.compType == "mod" do MyProj.ModuleView else MyProj.Component end), i.compName %>
更惯用的方法是使用不带end
的表单:
<%= render if(i.compType == "mod", do: MyProj.ModuleView, else: MyProj.Component), i.compName %>