【问题标题】:How to use has_scope gem in a view in rails 4?如何在 rails 4 的视图中使用 has_scope gem?
【发布时间】:2015-02-14 20:00:02
【问题描述】:

我正在尝试添加一个可点击的链接,该链接将使用 has_scope gem 按字母顺序对链接页面进行排序。我究竟会在我的观点中提出什么来完成这项工作?

模型链接.rb

 scope :abc, -> { order("links.title ASC") }


Links_Controller.rb

 has_scope :abc

 def index
    @links = apply_scopes(Link).all
 end


Index.html.erb

<div id="links-wrapper">
    <%= render partial: "shared/link", collection: @links %>
</div>


_link.html.erb

<div class="link">

    <a class="link-title" href="<%= link.url %>" target="_blank"><%= link.title %></a>


    <div class="link-printed-url"><%= link.url %></div>

    <p class="link-description"><%= link.description %></p>

    <div class="link-tags">
        <% link.tags.any? %>
            <% link.tags.each do |tag| %>
                <span class="label-tag">
                    <%= link_to tag_path(tag) do %>
                        #<%= tag.name %>
                    <% end %>
                </span>     
        <% end %>
    </div>


</div>

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 has-scope


    【解决方案1】:

    您需要将标题参数传递给范围。

    将模型中的作用域改为scope :abc, -&gt; title { order("links.title ASC") }

    scope :abc, -&gt; title { order(title: :asc) }

    你可以在局部做这样的事情

      <div class="link">
        <a class="link-title" href="<%= link.url %>" target="_blank"><%= link.title %></a>
    
    
        <div class="link-printed-url"><%= link.url %></div>
    
        <p class="link-description"><%= link.description %></p>
    
      </div>
      <% end %>
    
      <div class="link-tags">
        <%= link_to 'Order ASC', tag_path(:abc => true) %>
      </div>
    

    【讨论】:

      【解决方案2】:

      由于 has_scope 使用 url 参数,您需要在 link_to 上添加参数

      <%= link_to "title", links_path(abc: true) %>
      

      【讨论】:

      • 我得到错误数量的参数(1 代表 0)范围:abc,-> { order("links.title ASC") }
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多