如何在rails 4 中的视图中使用has_scope gem?
How to use has_scope gem in a view in rails 4?
我正在尝试添加一个可点击的 link,它将使用 has_scope gem 按字母顺序对 link 的页面进行排序。我究竟会把什么放在我的观点来使这项工作?
型号Links.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>
由于 has_scope 使用 url 参数,您需要将参数添加到 link_to
<%= link_to "title", links_path(abc: true) %>
您需要将标题参数传递给范围。
将模型中的范围更改为 scope :abc, -> title { order("links.title ASC") }
或
scope :abc, -> 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>
我正在尝试添加一个可点击的 link,它将使用 has_scope gem 按字母顺序对 link 的页面进行排序。我究竟会把什么放在我的观点来使这项工作?
型号Links.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>
由于 has_scope 使用 url 参数,您需要将参数添加到 link_to
<%= link_to "title", links_path(abc: true) %>
您需要将标题参数传递给范围。
将模型中的范围更改为 scope :abc, -> title { order("links.title ASC") }
或
scope :abc, -> 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>