2 Stimmen

Alle Benutzer aus bestimmten Spaltenwert in Ruby on Rails erhalten

Im Folgenden befindet sich das Schema des "users" Modells

id | First_Name | Zip
1  | abc        | 10005
2  | xyz        | 10005
3  | mno        | 10005
4  | ijk        | 10006

Und ich habe ein Textfeld, in dem ich die Postleitzahl eingebe, d.h. unten:

<%= form_for :search, :url => { :action => :search} do |f| %>

            Specs               

                  <%= f.text_field :tf_Zip,placeholder: "Zip" %>

                    <%= f.submit "Search", { :class => "buttonSearch"} %>

<% end %>

Und ich möchte alle Benutzer erhalten, deren "Zip == 10005", und ich verwende den folgenden Code:

  def search
    if ( !params[:search][:tf_Zip].blank? or params[:search][:tf_Zip] !="" )
   @user_zip = User.where(user_Zip: params[:search][:tf_zip])
end     
render 'search'

aber es funktioniert nicht richtig, bitte helfen. Danke

0voto

Richard Peck Punkte 74626

Sie müssen .where verwenden:

 def search
    if ( !params[:tf_Zip].blank? or params[:tf_Zip] !="" )
        @user_zip = User.where(zip: params[:tf_zip])
    end     
    render 'search'
  end

0voto

Bachan Smruty Punkte 5686

Versuchen Sie es mit dem folgenden Code.

def search
 @user_zip = params[:search][:tf_Zip].blank? ? [] : User.where(zip: params[:search][:tf_Zip])
 render 'search'
end

0voto

Roman Bambycha Punkte 316

Versuchen Sie es:

def search
  @user_zip = User.where(zip: params[:tf_Zip]) if params[:tf_Zip].any?

Sie müssen die params-Parameter überprüfen. Ich bin mir nicht sicher, ob es params[:search][:tf_Zip] sein wird, aber Sie sollten es überprüfen und richtig schreiben, wie Sie es in der App haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X