我希望得到这样的东西看起来不错:
>> ProductColor.all
=> [#<ProductColor id: 1, name: "White", internal_name: "White", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 2, name: "Ivory", internal_name: "Ivory", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 3, name: "Blue", internal_name: "Light Blue", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 4, name: "Green", internal_name: "Green", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">]
Run Code Online (Sandbox Code Playgroud)
这不起作用:
>> ProductColor.all.inspect
=> "[#<ProductColor id: 1, name: \"White\", internal_name: \"White\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 2, name: \"Ivory\", internal_name: …Run Code Online (Sandbox Code Playgroud) class Article < ActiveRecord::Base
has_many :comments
belongs_to :category
end
Run Code Online (Sandbox Code Playgroud)
是否有文章的类方法,我可以检索关联列表?我知道通过查看模型的代码,文章与评论和类别相关联.但有没有一种方法可以通过编程方式获得这些关联?
我是Ruby的新手,但我不明白为什么会有这样的结果。
Person类中,我有实例变量@name,
@age和@weight。在该I类重写to_s方法打印@name,@age以及@weight所述对象的。我在我有类型的对象的阵列的房屋类
Person(@persons),并且还我称的方法person返回对象(在位置与所述参数数量指定)在阵列中@persons,因此,例如,any_house_object.person(0)
将返回对象类型Person上的any_house_object对象数组中的第一个对象。
class Person
def initialize(name, age, weight)
@name = name
@age = age
@weight = weight
end
def to_s
puts "Name: #{@name}"
puts "Age: #{@age}"
puts "Weight: #{@weight}"
end
end
class House
def initialize
@persons = []
end
def add_person(name, age, weight)
@persons << Person.new(name, age, weight)
end
def person(number) …Run Code Online (Sandbox Code Playgroud)我看到过关于“如何在Rails中打印出对象的内容以便于调试? ”的问题,答案表明我可以使用to_yaml来打印出Object的内容。但是,为什么我运行 @jerhinesmith 创建的相同代码却得到 NoMethodError?
class User
attr_accessor :name, :age
end
user = User.new
user.name = "John Smith"
user.age = 30
puts user.inspect
#=> #<User:0x423270c @name="John Smith", @age=30>
puts user.to_yaml
#=> --- !ruby/object:User
#=> age: 30
#=> name: John Smith
Run Code Online (Sandbox Code Playgroud)
main.rb:11:in<main>': undefined methodto_yaml' for #@name="John Smith", @age=30> (NoMethodError) 以非零状态退出