以下代码:
<% (params.keys & User::FILTERS).each do |f| %>
<%= f %>
<% end %>
结果
country gender_type photos_count
我想创建一个类似的方法:
def rename
country = Country of Origin
gender_type = Gender
photos_count = Number of Photos
end
可以在上面的代码中用来代替字符串。
答案 0 :(得分:2)
有很多方法可以做到这一点。
一种方法是在控制器中声明Hash
,如下所示:
@sub_words = {
"country" => "Country of Origin",
"gender_type" => "Gender",
"photos_count" => "Number of Photos"
}
然后在你看来做:
<% (params.keys & User::FILTERS).each do |f| %>
<%= @sub_words.fetch(f, f) %>
<% end %>
您也可以按照建议使用方法。在你的控制器或助手中:
def rename(filter)
case filter
when "country"
"Country of Origin"
when "gender_type"
"Gender"
when "photos_count"
"Number of Photos"
else
filter
end
end
helper_method :rename
在您看来:
<% (params.keys & User::FILTERS).each do |f| %>
<%= rename(f) %>
<% end %>