Rails搜索表单

Sal*_*lsa 5 ruby-on-rails

我正在创建一个跟踪用户和成就的应用程序(想想,xbox live等).这些表通过连接表链接.我希望在我的索引上有一个搜索表单,用户可以输入用户名,新页面会加载用户已获得的所有成就列表.我不完全确定如何在索引上设置此搜索表单,以实际搜索用户表并在新页面上返回结果.任何帮助将不胜感激.如果您需要更多信息,我会很乐意提供.

Dav*_*A-R 5

这里有一些骷髅代码可以帮助您从我所说的内容开始.我希望这很有用.

对于搜索位,您可以在索引视图中执行以下操作:

<%= form_for User.new, :url => "search" do |f| %>
  <%= f.label :name %>
  <%- f.text_field :name %>
<%- end %>
Run Code Online (Sandbox Code Playgroud)

在你的控制器中:

def search
  q = params[:user][:name]
  @users = User.find(:all, :conditions => ["name LIKE %?%",q])
end
Run Code Online (Sandbox Code Playgroud)

并在您的搜索视图中:

<%-@users.each do |user| %>
  Name: <%=user.name %>

  <%- user.achievements.each do |achievement| %>
    <%= achievement.name %>
  <%- end %>
<%- end %>
Run Code Online (Sandbox Code Playgroud)

当然,您需要确保正确链接用户和成就模型:

class User << ActiveRecord::Base
  has_many :achievements

end
Run Code Online (Sandbox Code Playgroud)