我是红宝石的菜鸟,所以带上一粒盐。
我有一个Person
我在下面发布了。我应该使用姓氏搜索people
数组,并将结果返回到数组中,以便我可以使用诸如puts Person.search("Smith")
这是我正在上课的课程:
class Person
attr_accessor :first_name,:last_name
@@people = []
def initialize(x,y)#should take 2 parameters for first_name and last_name
@first_name = x
@last_name = y
@@people << "#{@x} #{@y}"
end
#my problem is that the function is returning nill.
def self.search(last_name)
@results = []
@@people.each do |variable|
if variable.include? last_name
@results << variable
end
end
@results
end
def to_s
puts "#{@first_name} #{@last_name}"
#return a formatted string as `first_name(space)last_name`
end
end
p1 = Person.new("John", "Smith")
p2 = Person.new("John", "Doe")
p3 = Person.new("Jane", "Smith")
p4 = Person.new("Cool", "Dude")
我将results
声明为块外的空数组,因此我可以更改其值并在块内添加项目,并将更改保持在块的范围之外。但由于某种原因,该功能似乎不起作用。如何调试功能,以便查明问题?
答案 0 :(得分:0)
您的代码中存在错误。你需要使用
Users.updateAuth().then(function(auth) {
// do something with auth
return Interests.syncAll();
}).then(function(interests) {
// do something with interests
return Events.syncAll();
}).then(
function success(events) {
// do something with events
$rootScope.syncing = false;
},
function failure(error) {
$rootScope.syncing = false;
$scope.syncError = true;
}
);
@@people << "#{x} #{y}"
和x
是局部变量,您不应将y
作为@
的前缀@x
,而@y
仅适用于实例变量