Ich versuche, den Code unten in Ruby zu führen. Ich erhalte einen Nullwert für @selectcells. Irgendwelche Vorschläge?Access Instanzvariable in Ruby
class Neighbor_finder
@@path = "/home/xyz"
def initialize(enodebid,earfcn_dl,distance,spread,mcc,mnc)
@site_details=Hash.new
@radius = distance
@earfcn_dl=earfcn_dl
@spread=spread
@sourceenb=enodebid
@plmn=mcc+mnc
@mcc=mcc
@mnc=mnc
puts "here"
end
def enodeb_cell_finder
[email protected]
[email protected]_dl
con=Mysql.new 'localhost','root','root','celldb'
puts "here11"
@site_details=con.query "SELECT * FROM enodeb WHERE enodeb_id LIKE '%#{enodebid}%'"
u = @site_details.fetch_hash
ap u
con.close
@con1 = Mysql.new 'localhost','root','root','celldb'
@selectnodes1 = @con1.query "SELECT * FROM cell_db_eutran_cells WHERE sitename LIKE '%#{enodebid}%' AND earfcn_dl LIKE '#{earfcn_dl}'"
@[email protected]_rows
end
end
d=Neighbor_finder.new("936144","2581",20,60,'311','850').enodeb_cell_finder
ap @selectcells
Wenn ich eine ap @selectcells hinzufügen, wie unten ich einen gültigen Wert habe ich gezeigt. Es scheint nur, dass ich auf den Wert der Instanzvariablen @selectcells von außen nicht zugreifen kann.
@[email protected]_rows
ap @selectcells
ich die neue Methode hinzugefügt. Jetzt bin ich den Fehler bekommen - ' ': nicht definierte Methode' selectcells' 3: Fixnum (NoMethodError) - BTW 3 ist der korrekte Wert von @selectcells def selectcells ist @selectcells Ende –
ssharma
@ssharma 'd' soll sei eine Instanz von 'Neighbor_finder'. Ich habe die Antwort aktualisiert. – mudasobwa