【问题标题】:Create a list of clickable links in a Helper module在 Helper 模块中创建可点击链接列表
【发布时间】:2013-12-26 07:26:14
【问题描述】:

一个用户有一组保存的链接。

每个链接都有属性addresstext。这些可以像这样访问:

@user.links.first.address
@user.links.first.text

如何为用户保存在辅助方法中的所有链接生成a 标记列表,我可以从视图中调用?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 view-helpers helpermethods


    【解决方案1】:

    你可以试试

    def create_links
     html=""
     @user.links.each do |link|
      html += link_to "Link for #{link.address}", "#"
      html += link_to "Link for #{link.text}", "#"
     end
      html.html_safe
    end
    

    【讨论】:

      【解决方案2】:

      你为什么不在@user.links上做一个.each

      你可以这样做:

      <% @user.links.each do |link| %>
          <%= link_to link.text, link.address %>
      <% end %>
      

      这将否定加载助手的要求

      【讨论】:

      • 确实,这通常是“最简单”的方法。在我的情况下,我在循环中涉及条件,这会使视图变得有点混乱,因此我想使用帮助器。
      【解决方案3】:

      你使用这个代码

       def directory(links)
          links.inject([]) {|_, e| _ << link_to e.name, e.address; _ }.join.html_safe
       end
      

      【讨论】:

        【解决方案4】:

        也许我表达得不够清楚,因为两个答案都使用了link.addresslink.text,我不太明白。但它给了我足够的信息来自己解决它。我就是这样做的:

        def link_generator(user_links)
          html = ""
          user_links.each do |link|
            html += link_to link.name, link.address
          end
          html.html_safe
        end
        

        【讨论】:

          猜你喜欢
          • 2016-07-31
          • 2014-03-04
          • 1970-01-01
          • 2015-11-25
          • 1970-01-01
          • 2020-06-28
          • 2012-01-24
          • 2010-11-18
          相关资源
          最近更新 更多