2013-03-11 83 views
0

免責聲明,我是ruby/rails n00b。在Ruby中是「名稱」保留的屬性,如果是的話,我該如何使用:名稱屬性?

我有一個簡單的ActiveRecord類:

class LandingPage < ActiveRecord::Base 
attr_accessible :name, :parent_id, :published 
end 

現在,我還沒有制定出的格局還沒有,但有時object.name返回正確的值,其他時間object.name或者,裏面的類,self.name返回值是這樣的:

<的LandingPage:0x007fd05c605980 >

我guessi這是因爲「名稱」就像一個保留的屬性?但有時它有效。我可以使用「名稱」作爲財產嗎?

+1

可以肯定使用「名稱」作爲屬性名。你的問題似乎有所不同。請提供更多信息。 – 2013-03-11 11:04:29

+0

使用對象[0] .name – 2013-03-11 11:06:56

回答

1

,如果你是一個類的方法

class Foo 
    def self.foo 
    puts self.name 
    end 
end 

Foo.foo將返回類名是富里。不過,考慮到以下

class Foo 
    attr_accessor :name 

    def self.foo 
    puts self.name 
    end 

    def method1 
    puts self.name 
    end 
end 

Foo.new(name: 'my name').method1將返回my name

2

名稱不是Ruby中的保留屬性,也不是Ruby on Rails中的保留屬性。我想你會打印出to_s方法的返回值。

如果您使用的是窮人的調試器(Kernel#putsKernel#p),那麼它將使用to_s方法。

嘗試:

puts landing_page.name 

,而不是puts landing_page。或者,如果你在一個視圖中使用它,這是相同的:

<%= @landing_page.name %> 

,而不是<%= @landing_page %>

+0

+1謝謝Karaszi!你是完全正確的。我對jvnill給出了答案,因爲它更直接地回答了問題,但是你100%正確。 – andy 2013-03-11 15:22:51

相關問題