Я хотел бы переместить следующее из моего представления в связанный помощник модели:
<%= link_to_unless params[:aged]=='0', "0", jobs_path(:aged => '0', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %> |
<%= link_to_unless params[:aged]=='30', "30", jobs_path(:aged => '30', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %> |
<%= link_to_unless params[:aged]=='60', "60", jobs_path(:aged => '60', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %> |
<%= link_to_unless params[:aged]=='90', "90", jobs_path(:aged => '90', :sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) %>
Я пробовал это, но это вызывает НЕОЖИДАННУЮ ошибку ИДЕНТИФИКАТОРА (очевидно, мне нужно объединить результаты link_to_unless с '|'):
link_to_unless params[:aged]=='0', "0", users_path(:aged=>'0',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) |
link_to_unless params[:aged]=='30', "30", users_path(:aged=>'30',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) |
link_to_unless params[:aged]=='60', "60", users_path(:aged=>'60',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav]) |
link_to_unless params[:aged]=='90', "90", users_path(:aged=>'90',:sort=>params[:sort],:dir=>params[:dir],:fav=>params[:fav])
Кажется, мне нужно вставить результаты этих вспомогательных методов в поток HTML, но я не уверен в лучшем подходе.
Теперь, когда в Rails 3 все помощники все время (помощники: все), есть ли способ указать виду модели использовать только помощника, связанного с моделью? На этом этапе я добавляю имя модели в имя функции - например, 'jobs_sorted_column'.
** редактировать **
Refactored
jobs_helper:
def posted_filter(bucket)
link_to_unless params[:posted]==bucket, bucket, jobs_path(:posted =>bucket, :starting=>params[:starting],:sort=>params[:sort],:dir=>params[:dir])
end
вид:
[ <% ['0','30','60','90'].each do |bucket| %>
<%= posted_filter(bucket) %> |
<% end %> ]
Вопросы:
- Результирующий вывод выглядит как [0 | 30 | 60 | 90 | ]. Есть ли простое исправление для удаления 4-го '|'?
- Похоже, что был бы более элегантный способ передачи параметров в маршрут, включая одно "переопределенное" значение (в моем примере это сообщение:> bucket, в моем примере).