Rails将RegEx与渲染相结合以选择性地渲染模板

问题描述 投票:0回答:1

我们假设我有以下部分:

_o1_some_note.html.erb
_o2_other_note.html.erb
_o3_last_note.html.erb
...

我想像@counter变量允许的那样渲染尽可能多的部分,如下所示:

# Controller
def view
  @counter = 2
end

# View

<% (1..@counter).each do |c| %>
  <%= render "o#{c}" %>
<% end %>

问题是上面的失败是因为o1o1o3不是部分的实际名称。但是我想知道是否有办法绕过这个,只提供o#部分,因为部分名称的其余部分更多用于内部组织。这样,代码就更干净了。

所以这基本上是说,渲染与此描述匹配的模板文件(使用RegEx或其他)

ruby-on-rails regex render partial-views
1个回答
0
投票

您可以从目录中对文件进行全局处理,然后将其名称拉出来进行渲染。例如:

<% Dir["#{Rails.root}/app/views/partial/location/_#{c}*"].each do |file_path| %>
  <%= render file_path.split("/").last %>
<% end %>
© www.soinside.com 2019 - 2024. All rights reserved.