Render template if exists in Rails

在Rails应用中,面对根据商品类型决定渲染不同页面的业务需求,传统的做法可能导致维护困难。通过检查数据库中商品的type来决定加载相应的模板。可以参考StackOverflow上的讨论和Rails官方API,使用ActionView的template_exists?方法来判断模板是否存在,从而实现智能渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 业务场景:不同的商品类型render不同的页面(根据数据库里面type的不同render相应的页面)维护和同步它们是非常困难的

<% if lookup_context.exists?(@good.type_name, "_good","admin/goods/form", true) %>
  <%= render "admin/goods/form/#{@good.type_name}", f: f %>
<% end %>
lookup_content.exists?参数中的true 意味着  it's a partial,如果@good.type_name => goods_1 以为这admin/goods/form/_goods_1.html.erb(或者其他haml, slim)

参考连接: https://stackoverflow.com/questions/3559419/is-there-any-rails-function-to-check-if-a-partial-exists

   http://api.rubyonrails.org/classes/ActionView/LookupContext/ViewPaths.html#method-i-template_exists-3F

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值