Ruby on rails 3 链接到函数?功能的新视图?
我创建了一个函数,用于收集以选定字母/数字开头的模型(称为Nismo)的所有条目: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函数,然后在页面中显示以该字母开头的所
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