【问题标题】:Ruby on rails. Filtering results with ransack and geocoder红宝石在铁轨上。使用 ransack 和 geocoder 过滤结果
【发布时间】:2015-12-26 21:19:12
【问题描述】:

我目前正在过滤我的索引页面上的结果。我有使用地理编码器进行地理编码的“演出”。我也在尝试使用 ransack 在同一页面上过滤同一模型中的其他属性。

到目前为止,我可以很好地用 ransack 过滤结果,并且可以单独按位置过滤结果,但我不能将两者联系在一起,例如,如果我在某个日期之后过滤所有演出,这些会显示,但如果我将位置添加到过滤器查询中,列表不会改变。不过地图会显示位置。

这是我目前的代码。

演出控制器

def index
    if params[:search].present?
    @gigs = Gig.near(params[:search], 200, :order => 'distance' )
    @hash = Gmaps4rails.build_markers(@gigs) do |gig, marker|
      marker.lat gig.latitude
      marker.lng gig.longitude
      marker.title gig.title
    end
    else
    @gigs = Gig.all
    @hash = Gmaps4rails.build_markers(@gigs) do |gig, marker|
      marker.lat gig.latitude
      marker.lng gig.longitude
      marker.title gig.title
    end
  end
  @q = Gig.ransack(params[:q])
  @gigs = @q.result(distinct: true)
end

我已经改变了一些改变搜索行为的事情的顺序,但我无法将这两件事联系在一起。我目前这样离开它只是为了显示代码。

索引.html

<div class="search-filters">
<div class="search-location">
  <%= search_form_for @q do |f| %>
<%= form_tag gigs_path, :method => :get do %>
<p>
  <%= f.search_field :date_gteq, placeholder: "From" %>
  <%= f.search_field :date_lteq, placeholder: "Until" %>
  <%= text_field_tag :search, params[:search] %>
  <%= submit_tag "Near", :name => nil %>
</p>
<% end %>
<%= sort_link(@q, :date) %>

<% end %>

</div>
</div>

提前感谢您在将这些链接在一起时提供的任何建议。

【问题讨论】:

    标签: ruby-on-rails search filter ransack rails-geocoder


    【解决方案1】:

    好的,经过进一步研究,我意识到我可以将两者联系在一起。我单独留下了索引,但更改了控制器。

    控制器:

    def index
        if params[:search].present?
        @q = Gig.near(params[:search], 200, :order => 'distance' ).ransack(params[:q])
        @gigs = @q.result(distinct: true)
        @hash = Gmaps4rails.build_markers(@gigs) do |gig, marker|
          marker.lat gig.latitude
          marker.lng gig.longitude
          marker.title gig.title
        end
        else
        @q = Gig.ransack(params[:q])
        @gigs = @q.result(distinct: true)
        @hash = Gmaps4rails.build_markers(@gigs) do |gig, marker|
          marker.lat gig.latitude
          marker.lng gig.longitude
          marker.title gig.title
        end
      end
    end
    

    我现在要把所有东西都清理一下。

    【讨论】:

      猜你喜欢
      • 2011-07-13
      • 1970-01-01
      • 2016-01-07
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      相关资源
      最近更新 更多