gpt4 book ai didi

ruby-on-rails - 将 has_scopes gem 中的 current_scopes 作为参数传递

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:03 25 4
gpt4 key购买 nike

我已经为这个问题苦恼好几天了。我是一名律师,我正在构建一个问答类网站以提供法律建议(是的,我是 Rails 的新手 :-))。

我希望用户能够按类别(即公司法、知识产权等)过滤问题,然后能够根据最新或流行等对它们进行次要排序。

我尝试了多种方法,但最终,在尝试按最近、流行等进行排序时,我一直无法找到将当前选择的类别作为另一个参数传递的方法。

我刚刚开始使用 has_scopes gem,我从文档中看到有一个名为“current_scopes”的方法。我似乎无法弄清楚如何在 View 中将 current_scopes 作为参数传递,然后可以在其中调用最近或流行的范围。从逻辑上讲,我假设 current_scopes 需要分配给 Controller 中的一个变量,但同样,无法弄清楚如何将其作为参数传递到 View 中。

我当前的代码:

post.rb

    has_many :comments, dependent: :destroy
belongs_to :user, :counter_cache => true
belongs_to :category, :counter_cache => true

scope :recent, ->{ order("created_at DESC")}
scope :popular, -> { order("comments_count DESC")}
scope :unanswered, -> {where(comments_count: 0)}
scope :category, -> category_id {where(:category_id => category_id)}

posts_controller.rb

  has_scope :category 
has_scope :recent, :type => :boolean
has_scope :popular, :type => :boolean
has_scope :unanswered, :type => :boolean

def index
@posts = @q.result.includes(:comments).order("created_at DESC") #@q comes from using Ransack gem and applying in the application controller
@posts = apply_scopes(Post).all
@scope = current_scopes

_sidebar.html.erb

    <h3>Filter by: </h3>
<ul class="side-nav fixed" role="navigation" title="Link List">
<li role="menuitem"><%= link_to "Show all", root_path %></li>
<li role="menuitem"><%= link_to "Corporate", category: 1 %></li>
<li role="menuitem"><%= link_to "Intellectual Property", category: 2 %></li>
<li role="menuitem"><%= link_to "Employment", category: 3 %></li>
<li role="menuitem"><%= link_to "Commercial", category: 4 %></li>
<li role="menuitem"><%= link_to "Real Estate", category: 5 %></li>
<li role="menuitem"><%= link_to "Venture Capital", category: 6 %></li>
</ul>

<h3>Sort by:</h3>
<li> <%= link_to "Most Recent", :recent => true %> </li>
<li> <%= link_to "Most Popular", :popular => true %></li>
<li> <%= link_to "Unanswered", :unanswered => true %></li>

非常感谢您对此事的任何帮助。

最佳答案

对于寻找此问题答案的任何其他人,current_scopes 值仅在调用 apply_scopes 后可用。该问题已记录 here .

关于ruby-on-rails - 将 has_scopes gem 中的 current_scopes 作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28596676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com