【发布时间】:2010-12-13 15:13:28
【问题描述】:
我想将以下内容从我的视图移动到模型的关联助手中:
<%= 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]) %>
我已经尝试过了,但它会导致 UNEXPECTED IDENTIFIER 错误(显然我需要将 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”。
** 编辑 **
重构
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 个“|”?
- 似乎有一种更优雅的方式将参数传递给路由,包括一个“覆盖”值(在我的示例中为:posted=>bucket)。
【问题讨论】:
标签: views helpers ruby-on-rails-3