我对 Rails 还是很陌生。我开始掌握它的窍门,但目前我想做的事情超出了我的范围。我做了很多研究,制作搜索框有很多,但我想简化这个过程。所以,我有一个视图助手可以做到这一点:
<% if @events.any? %>
<ol class="events">
<%= render @events %>
</ol>
<% end %>
效果很好,这显示了用户自己的事件。我得到一个事件对象列表,每个对象由 3 行组成:city
,:event_name
、 和:event_date
。我想要做的是能够单击对象,一个:city
或两个:city
/:event_date
行,并显示搜索结果,该搜索查找具有相同:city
AND的所有事件:event_date
。FWIW 我正在使用下拉列表来获取事件对象的城市和日期,因此不会有用户输入差异。我想我需要继续自己渲染视图,比如
<% @events.each do |e| %>
<%= link_to e.city, searchlinkthingie %>
<% end %>
连同一个相关的搜索控制器来获取结果并抛出一个新页面,以及一个新的路由。我还没有尝试构建控制器和路由,因为我不太清楚它需要是什么样子。我一直在阅读,link_to
我想我需要继续直接建立链接,但同样,不确定它应该是什么样子。我正准备通过我的显示器把我的头。想法?
编辑:受以下答案启发的解决方案是link_to
为城市和事件日期创建两个连接字符串,并search_url(params[:search1 event.city, :search2 event.date])
在事件控制器中创建一个关联的搜索方法,该方法在事件模型中调用一个self.search
方法,并在路线中创建一个“匹配” .rb。该模型使用 AND 执行 SQL 查询,返回我想要的结果,并使用简单的帮助程序显示。