首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails:如何从map方法中设置返回值?

Rails:如何从map方法中设置返回值?
EN

Stack Overflow用户
提问于 2013-12-18 14:34:16
回答 2查看 351关注 0票数 1

我有一个页脚助手来显示链接

代码语言:javascript
复制
  def footer_helper
    resources = ["tweet","questions"] # and perhaps something more
     resources.map do  |resource|
       if current_page?(controller: resource.pluralize, action: 'index')
         link_to "New #{resource.humanize}", {controller: resource.pluralize, action: 'new'}
        else
         link_to "#{resource.pluralize.humanize}",{controller: resource.pluralize, action: 'index'}
       end
    end.join(" ")
  end

在footer.html.erb中,我写道:

代码语言:javascript
复制
<%= raw footer_helper %>

问题:

  1. .join(" ")很丑。有更好的语法吗?如果我不使用它,.map将返回一个包含链接html的数组。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-18 14:46:14

代码语言:javascript
复制
def footer_helper
  ["tweet","questions"].map do  |resource|
    if current_page?(controller: resource.pluralize, action: 'index')
      link_to "New #{resource.humanize", send(:"new_#{resource}_path")
    else
      link_to resource.pluralize.humanize, send(:"index_#{resource}_path")
    end
  end.join(" ").html_safe
end

footer.html.erb中,简单地说:

代码语言:javascript
复制
<%= footer_helper %>
票数 1
EN

Stack Overflow用户

发布于 2013-12-18 14:39:17

我认为连接很好,但是您正在实例化一个不需要的变量。此外,您还可以使用send作为路径。代码在下面。

代码语言:javascript
复制
def footer_helper
  ["tweet","questions"].map do |resource|
    if current_page?(controller: resource.pluralize, action: 'index')
      link_to "New #{resource.humanize}", send("new_#{resource}_path".to_sym)
    else
      link_to "#{resource.pluralize.humanize}", send("index_#{resource}_path".to_sym)
    end
  end.join(' ')
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20660942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档