我有一个包含十个名字的数组,我在html.erb中循环浏览列表项,我希望它们也是链接。因此,当您单击该链接时,您可以搜索单击的个人名称。我遇到的问题是它带我到我想要的路径,但显示我的整个数据库而不是单数名称。
以下是list.html.erb的代码
<%=render 'layouts/search_bar' %>
<h2>Top DJs Worldwide</h2>
<ol>
<% @djsList.each do |n|%>
<li><%= link_to n, search_list_path(:params[n] ) %></li>
<% end %>
</ol>
<p><%=link_to "List from DJ MAG", "http://djmag.com/top100", :target => "_blank "%></p>
<section>
<%= render "layouts/comments"%>
</section>
这是此页面的控制器
class DjsController < ApplicationController
def list
@djsList = ["Hardwell", "Armin Van Buuren", "Avicii", "Tiesto", "David Guetta", "Dimitri Vegas & Like Mike", "Nicky Romero", "Steve Aoki", "Afrojack", "Dash Berlin"]
end
end
这是数据库的模型
class DjList < ActiveRecord::Base
def self.search search_term
return scoped unless search_term.present?
where(['dj_name LIKE ?' , "%#{search_term}%"])
end
end
这是search_controller.rb
class SearchController < ApplicationController
def list
@search = DjList.search(params[:dj_name]).all
@listShows = [ "Dash Berlin at SoundGarden Hall, Friday, January 31, 2014" ]
end
end
答案 0 :(得分:0)
:params
应为params
)。
<li><%= link_to n, search_list_path(:params[n] ) %></li>
所以:
<li><%= link_to n, search_list_path( params[n] ) %></li>
另外 - 你怎么告诉路径这个参数的名字是什么?你只是传递一个原始的值 - params必须是一个键值对,你没有给它任何键。尝试:
<li><%= link_to n, search_list_path( :dj_name => params[n] ) %></li>
最后......我很确定你在不同的 dj-names的循环中...并希望每个链接转到不同的 dj-name(不是当前存储在params中的那个,而是循环的迭代中列出的那个。所以请改用:
<li><%= link_to n, search_list_path( :dj_name => n ) %></li>