我想将下面的内容从我的视图移到模型的相关助手中:
<%= 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一直都包含所有的助手(helpers : all ),那么是否有一种方法可以指示模型的视图只使用与模型关联的助手?此时,我正在将模型的名称添加到函数的名称中--例如,'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 %> ]问题:
发布于 2010-12-19 21:33:14
你可以做得更好:
def posted_filters(*args)
args.collect { |bucket|
link_to_unless(params[:posted]==bucket, bucket, jobs_path(:posted =>bucket, :starting=>params[:starting],:sort=>params[:sort],:dir=>params[:dir]))
}.join(' | ').html_safe
end在您看来,代码:
[ <%= posted_filters(0, 30, 60, 90) %> ]发布于 2010-12-19 20:52:42
尝试使用collect和join,如下所示:
<%= ['0','30','60','90'].collect{ |x| "#{posted_filter(x)}" }.join(' | ') %>请参阅:数组#收集
https://stackoverflow.com/questions/4430263
复制相似问题