我对Ruby(以及一般的编程)很陌生,但我认为有一种方法可以调用所有类对象的属性?
class Player
attr_reader :number
def initialize(name, number)
@name = name
@number = number
end
def self.all_numbers
[] << Player.each {|person| person.number}
end
end
guy1 = Player.new('Bill', 23)
guy2 = Player.new('jeff', 18)
Run Code Online (Sandbox Code Playgroud)
我想通过调用类来访问所有对象的数字..
Player.all_numbers
Run Code Online (Sandbox Code Playgroud)
希望回归..
[23, 18]
Run Code Online (Sandbox Code Playgroud) 如果尚未设置属性或已删除属性,则寻找更简洁的方法来设置默认值,并返回nil.
class Category < ActiveRecord::Base
has_and_belongs_to_many :restaurants
belongs_to :picture
def set_picture
if self.picture.nil?
Picture.default_pic
else
self.picture
end
end
end
class Picture < ActiveRecord::Base
belongs_to :review
def self.default_pic
Picture.new(url: "/assets/default.jpg")
end
end
# index.html.erb
<%= image_tag category.set_picture.url %>
Run Code Online (Sandbox Code Playgroud)
类别有很多餐馆,餐馆有很多评论.评论有一对一的图片.应该允许类别从其相关图片中选择一个,或者默认为assets文件夹中的图像.
#set_picture需要重构.希望某种类型的回调:
class Category < ActiveRecord::Base
belongs_to :picture, defaults_to: Picture.default_pic
end
Run Code Online (Sandbox Code Playgroud)
是否有回复执行上述操作?我可以创建一个吗?或者我的框架错了?