我有一个类似于这个的块:
<% @github_tmp_files.files.each do |file| %>
<li><%= link_to @github_tmp_files.filename(file.key), @github_tmp_files.download_url(file.key) %></li>
<% end %>
正如您在循环中看到的,我使用file
作为参数调用两个方法:
@github_tmp_files.filename(file.key)
@github_tmp_files.download_url(file.key)
我更愿意将这两种方法称为:
file.filename (should return) @github_tmp_files.filename(file.key)
file.download_url (should return) @github_tmp_files.download_url(file.key)
所以最后我可以写这样的循环:
<% @github_tmp_files.files.each do |file| %>
<li><%= link_to file.filename, file.download_url %></li>
<% end %>
如何更改files
中的@github_tmp_files
方法,以便它允许此行为?感谢
#in @github_tmp_files -> Class
def files
github_bucket.objects(prefix: @folder)
end
答案 0 :(得分:0)
出于好奇:
<% @github_tmp_files.files.map(&:key).each do |file| %>
<li>
<%= link_to *[:filename, :download_url].each do |m|
@github_tmp_files.public_send(m, file)
end %>
</li>
<% end %>