我想创建一个字符串成为属性:
Model:
Author
attr_accessible :book1, book2, book3 etc...
我想用较小的命令检索20本书
def do_something
self.book1
self.book2
self.book3
....
end
这是我提出的解决方案,但是如何让字符串成为属性,以便我可以检索数据。
def do_something
count = 0
10.times do
self."book#{count += 1}"
end
end
答案 0 :(得分:1)
这将有效:
def do_something
count = 0
10.times do
self.send("book#{count += 1}")
end
end
同样试试这个,它更简单,也应该有效:self[:book1]
或self['book1']
attr_accessible :books
...
self.books.each { |book| puts book }
self.books[0] # etc.
答案 1 :(得分:0)
您可以使用eval
。
10.times do
eval("self.book#{count} = count}")
end