小编Car*_*rpk的帖子

返回ruby中类的所有对象的属性

我对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)

ruby

2
推荐指数
1
解决办法
722
查看次数

如果属性为nil,则为ActiveRecord默认值

如果尚未设置属性或已删除属性,则寻找更简洁的方法来设置默认值,并返回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)

是否有回复执行上述操作?我可以创建一个吗?或者我的框架错了?

ruby activerecord ruby-on-rails

1
推荐指数
1
解决办法
973
查看次数

标签 统计

ruby ×2

activerecord ×1

ruby-on-rails ×1