我的 rails 应用程序基本上显示了存储在数据库中的各种字典。我已经设置了一个带有脚手架的基本 Rails 应用程序以在网页上显示它,但我一生都无法弄清楚如何设置它。基本上我想要一行 26 个字母,当你点击一个字母(比如“A”)时,我只想看到那个字母的字典条目。
我的 index.html.erb 文件:
<% for char in 'A'..'Z' %>
<%= link_to( "#{char}", "/words/lettersearch", :id => "#{char}") %>
<% end %>
我的 words_controller.rb 文件方法:
def lettersearch
@word = Word.find(:all, :conditions => ["word LIKE ?", "#{params[:word]}%"])
end
然后它将@word 输出到另一个页面。
我的问题是它只是再次输出整个字典,无论我在索引页面上单击什么字母。我知道这与路由有关,因为它似乎从未真正运行过“lettersearch”方法——它总是试图运行控制器中默认定义的“显示”方法。
任何人都可以帮我快速解决如何通过这个路径吗?我对 Rails 很陌生,我根本不了解 link_to 的工作原理。
路线.rb:
Dictionary::Application.routes.draw do
resources :words do
post 'search', :on => :collection
post 'lettersearch', :on => :collection
end
#Rest of routes.rb still commented apart from
match ':controller(/:action(/:id))(.:format)'