0

Railsプロジェクトで素晴らしい解決策を見たと思います。このソリューションはレールに組み込まれていると思います。

私が取得したいのは、次のようなことを行うハッシュのようなオブジェクトです。

jar = Jar.new #no defined methods 'name' in it!

jar.name #returns nil
jar.name = 'fu'
jar.name #return 'fu'

nameハッシュが機能するのと同じように、可能なすべてのものをどこに置くことができますか。私はそれを事前に定義したくありません!

レールなどでこれを行うヘルパークラスはありますか?

4

2 に答える 2

4

Ruby コアにある OpenStruct を使用できます。

require 'ostruct'

person = OpenStruct.new
person.name    = "John Smith"
person.age     = 70
person.pension = 300

puts person.name     # -> "John Smith"
puts person.age      # -> 70
puts person.address  # -> nil

また、ドキュメントもご覧ください。

于 2013-04-26T07:04:31.177 に答える
1

openstruct を使用できます。

require 'ostruct'
=> true 
o = OpenStruct.new
=> #<OpenStruct>
o.foo
=> nil 
o.foo= 1
=> 1 
o.foo
=> 1 
于 2013-04-26T07:04:20.463 に答える