gpt4 book ai didi

ruby-on-rails - Rails 中的多字段搜索

转载 作者:行者123 更新时间:2023-12-04 03:44:59 24 4
gpt4 key购买 nike

我想在 Rails 中做一个具有以下能力的高级搜索表单:

必需的

  • 5 field_tag s 用户可以输入在表中搜索特定字段的搜索词。
  • 1 field_tag搜索表中的所有字段 (DONE)。

  • 首选
  • 能够指定运算符,如 AND , OR等。
  • 能够像 this 那样指定更详细的运算符, inquestion

  • 我怎样才能在实践中做到这一点,尤其是第一个要点?

    最佳答案

    我没有对此进行测试,请有人相应地编辑语法,但从逻辑上讲,我不明白为什么它不起作用。
    app/views/posts/_form.html.erb

    <% form_tag(@post, :method => :get) do %>
    <p>
    Search Phrase
    <%= text_field_tag :phrase, params[:phrase] %>
    </p>
    <p>
    <%= radio_button_tag :search_everything, true %>
    Search Everything
    </p>
    <p>
    <%= radio_button_tag :search_everything, false %>
    Advanced Search
    </p>
    <div id="advacned_search">
    <% format_column_names(Post.column_names) do |cn| %>
    <%= check_box_tag "post[column_names][]", cn %> Field
    <%= check_box_tag cn %><br/>
    <% end %>
    </div>
    <p>
    <%= submit_tag "Search" %>
    </p>
    <% end %>
    app/helpers/post_helper.rb
        def format_column_names(cns)
    filtered_names = "id" #add the other column names you do not want
    cns.delete_if {|cn| filtered_names.include?(cn) }
    return cns
    end
    app/controllers/posts_controller.rb
        def index
    phrase = params[:phrase]
    if params[:search_everything]
    @posts = Post.find(:all, :conditions => everything_conditions(phrase))
    else
    column_names = params[:column_names]
    @posts = Post.find(:all, :conditions => specific_conditions(column_names, phrase))
    end
    end

    def everything_conditions(phrase)
    [Post.column_names.map {|cn| "#{cn}=?" }, phrase]
    end

    def specific_conditions(phrase, column_names)
    [column_names.map {|cn| "#{cn}=?" }.join("or "), phrase]
    end
    public/javascripts/post.js #确保在 View 中包含 jQuery 和此文件`
    jQuery.noConflict();
    jQuery(document).ready(function() {

    $("input[name$='search_everything']").click(function(){
    var value = $(this).val();
    if(value) {
    $("#advanced_search").hide();
    } else {
    $("#advanced_search").show();
    }
    }

    })

    关于ruby-on-rails - Rails 中的多字段搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6399667/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com