2016-08-01 10 views
0

:: Ich möchte meine Datenbank abfragen, speichern Sie die Ergebnisse in einer Variablen und zeigen Sie diese Ergebnisse in der Ansicht von dieser Variablen. Ich weiß nicht, wie ich die Ergebnisse anzeigen oder speichern soll.Wie frage ich eine Datenbank aus meiner Rails App?

Was ist der richtige Weg, um dies auszuführen?

Hier ist der Code:

Dies ist die Form (erste Seite):

# MODEL 
class Computer < ActiveRecord::Base 
    has_one :name 
    has_one :used_at 
    has_one :used_for 
    has_one :cash 
end 

REGLER:

       # submit: A controller | shoot: A method 
<%= simple_form_for :computer , url:submit_shoot_path , :method => :get do |f| %> 

     <%= f.input :used_at, collection: ["Home" , "Work" , "Travel"] , wrapper_html: { class: 'col-xs-3'} %> 
     <%= f.input :used_for, collection: [ "Programming", "Gaming", "Blogging"], wrapper_html: { class: 'col-xs-3'} %> 
     <br/> 
     <%= f.input :cash, input_html: { max: 500 } , wrapper_html: { class: 'col-xs-3' } %> 
     <br/> 
     <%= f.button :submit, value: 'Submit' , :name => nil %> 
    <% end %> 

mein Modell Hier ist

class SubmitController < ApplicationController 
    def shoot 
    used_at = params[:where_at] 
    used_for = params[:used_at] 
    cash = params[:amount] 
    #I tried to store the variable. 
    #Is this correct? v 
    search = Computer.find(8) 
    render:shoot 
    end 
    end 

VIEW : Ich möchte alle Zeilen aufzulisten, die von der Abfrage betroffen war (Bsp: Finden Sie * Computer, wo der Preis = ‚400‘) und die Ergebnisse werden in etwa so sein:

. Name: Toshiba (Name) | Preis: 1,00 $ (in bar) | Zuhause (used_at) | Programmierung (used_for).

Diese Seite zeigt ohne Fehler. Es lädt, aber wie lade ich die Abfrageergebnisse? Ergebnisse (Zweite Seite): shoot.html.erb

** Jetzt in der Ansicht mag ich **

<html> 
<head>Hello</head> 

<body> 
<table> 
    <ul> 
     <!-- Isn't there a search.each do |t| method that goes here. --> 
    </ul> 
</table> 
</body> 
</html> 

Bitte, die Ergebnisse aus der db-Abfrage in einer Liste (li) zur Liste Ich frage dich, SOF Rubyist helfen mir das zu lösen.

HINWEIS: Bitte keine Empfehlungen zu guides.rubyonrails.org.

Antwort

0

In Ihrem SubmitController.rb

@search = Computer.find(8) ## @search is a instance variable now. You can use it in views. @Search contains a record from computer whose id is 8. 

dann in View-Datei,

<%= @search.name %> ## i assume name is a column in computers method. 
<%= @search.xyz %> ## xyz is again a column name and so on... 

Wenn Sie in SubmitControoler.rb schreiben

@search = Computer.all ## fetch all the records from computers tables. 

dann wird es holen Sammlung von Objekten Computer Klasse. Sie können wie folgt in der Ansicht iterieren:

<% @search.each do |x| %> 
    <%= x.name %> 
    <%= x.xyz %> 
    ...... 
<% end %> 
+0

Vielen Dank! Ich habe jedoch einen Fehler erhalten: "undefined Methode' each '". Wie behebe ich das? –

+0

Teilen Sie den Code für die Controller-Methode und die angesehene Ansicht. –

+1

Ich habe es behoben. Ich habe @ Suche zu @ Computern (Plural) geändert. und im Modell 'Computer' habe ich die used_at, where_at's zu UsedAt und WhereAt geändert. –

Verwandte Themen