【问题标题】:Rails Search FormRails 搜索表单
【发布时间】:2011-07-04 05:57:15
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这里有一些框架代码,可以根据我认为你所说的内容来帮助你开始。我希望这很有用。

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

    <%= form_for User.new, :url => "search" do |f| %>
      <%= f.label :name %>
      <%- f.text_field :name %>
    <%- end %>
    

    在您的控制器中:

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

    在您的搜索视图中:

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

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

    class User << ActiveRecord::Base
      has_many :achievements
    
    end
    

    【讨论】:

      【解决方案2】:

      有很多关于这个的教程和东西,例如:

      http://blog.devinterface.com/2010/05/how-to-model-a-custom-search-form-in-rails/

      看问题是 Rails3 中的每个基本解释,从他们提供的 Initial Tutorial 开始,向您解释如何设置新的 Controller/Model。该示例只是解释同一问题的数千个示例之一。

      您可以做很多不同的事情来实现这一目标。基本上你必须在控制器中放一些代码:

      1. 处理搜索(包括 activerecord 内容或您用于访问模型的任何技术)
      2. 设置搜索表单所需的一些变量

      设置两条路线等...它的范围很广,甚至在基本的官方 rails3 教程中也完全涵盖。

      【讨论】:

      • 谢谢,但至少对我而言,该教程并没有给出非常清晰的解释,而且它需要您使用 formtastic。感谢您使用谷歌搜索,但如果它可以让我更容易理解,我将再次感谢它。
      • 该链接有翻译吗?
      • @AliQanavatian 你可以直接点击右边的English as Language
      【解决方案3】:

      这是一个基于搜索逻辑的应用程序,非常有用,您可以根据需要进行搜索

         https://github.com/railscasts/176-searchlogic
      

      【讨论】:

        【解决方案4】:

        您可能想查看 Ransack gem。 https://github.com/activerecord-hackery/ransack

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-19
          • 2015-07-16
          • 2011-07-02
          • 1970-01-01
          • 1970-01-01
          • 2017-07-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多