link_to功能?功能新视图?

问题描述:

我创建了一个收集模型(称为NISMO)的所有条目与所选字母/数字开头的函数:link_to功能?功能新视图?

​​3210

我有这样我的“NISMO”控制器内。

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

我的问题是,在我的索引页我真的不知道如何让这一切发生:

<% Array('A' .. 'Z').each do |letter| %> 
    <%= link_to letter, showByLetter(letter) %> 
<% end %> 

我猜我需要为此创造一个新的view.html.erb文件“showByLetter”函数来显示它的结果。

我试图让我的头从程序员程序员的书中看到它,并且看到网络上的评论可能意味着我需要使用routes.rb文件来添加以添加东西喜欢得到正确的路线:

namespace "nismo" do 
    resources :nismos do 
     member do 
      get :showByLetter 
     end 
    end 
end 

我相信这一切都很简单,但我很困惑,需要一些指针。

任何帮助将不胜感激!

感谢

亚当

坦率地说,这样做是在“NISMO”控制器中的索引操作最简单的方法。你可以做的是改变

<%= link_to letter, showByLetter(letter) %> 

<%= link_to letter, nismos_path(:letter => letter) %> 

这样做是创建一个链接回当前索引页,并将它类似于

yourrooturl.com/nismos?letter=A 

而一个GET paramater那么在Nismo控制器的索引操作中,只需添加一个if语句以确定是应该加载所有nismos还是仅加载该字母。类似的东西:

if params[:letter].nil? 
    @nismos = Nismo.all 
else 
    @nismos = Nismo.all :conditions => ['substr(name,1,1) = ?', params[:letter]] 
end 

这应该解决您的问题,你将不必处理路线。