Ruby on rails 3 链接到函数?功能的新视图?

Ruby on rails 3 链接到函数?功能的新视图?,ruby-on-rails-3,Ruby On Rails 3,我创建了一个函数,用于收集以选定字母/数字开头的模型(称为Nismo)的所有条目: def showByLetter(letter) @nismosByLetter = Nismo.all :conditions => ['substr(name,1,1) = ?', letter] end 我的“尼斯莫”控制器里有这个 在Nismo控制器的索引视图中,我有一个字母菜单,我想使用它来允许用户选择,例如,“B”。这将运行showByLetter函数,然后在页面中显示以该字母开头的所

我创建了一个函数,用于收集以选定字母/数字开头的模型(称为Nismo)的所有条目:

def showByLetter(letter)
    @nismosByLetter = Nismo.all :conditions => ['substr(name,1,1) = ?', letter]
end
我的“尼斯莫”控制器里有这个

在Nismo控制器的索引视图中,我有一个字母菜单,我想使用它来允许用户选择,例如,“B”。这将运行showByLetter函数,然后在页面中显示以该字母开头的所有条目

我的问题是,在我的索引页面中,我真的不知道如何实现这一切:

<% Array('A' .. 'Z').each do |letter| %>
    <%= link_to letter, showByLetter(letter) %>
<% end %>
我相信这一切都很简单,但我很困惑,需要一些指导

任何帮助都将不胜感激

谢谢


Adam

老实说,最简单的方法是在“nismo”控制器中执行索引操作。你能做的就是改变

<%= link_to letter, showByLetter(letter) %>
然后在Nismo控制器中的索引操作中,只需添加一个if语句,以确定是应该加载所有Nismo还是只按字母加载。类似于:

if params[:letter].nil?
  @nismos = Nismo.all
else
  @nismos = Nismo.all :conditions => ['substr(name,1,1) = ?', params[:letter]]
end
这将解决您的问题,您将不必处理路线

<%= link_to letter, nismos_path(:letter => letter) %>
yourrooturl.com/nismos?letter=A
if params[:letter].nil?
  @nismos = Nismo.all
else
  @nismos = Nismo.all :conditions => ['substr(name,1,1) = ?', params[:letter]]
end