作者ihower (好2ˇ)
看板Ruby
标题Re: [问题] 有没有办法把资料栏位对映到阵列?
时间Sat Mar 22 09:18:04 2008
※ 引述《shelary (喵小咩)》之铭言:
: 环境:
: Ruby 1.8.6 Rails 2.0.0
: 状况:
: 有时候会遇到同类型的资料要存进 SQL 里
: 比如一台车(一笔资料)坐四个人(四个栏位)
: 就会弄成:
: car.user1
: car.user2
: car.user3
: car.user4
: 虽然这样可以用, 但总觉得很不方便
: 所以想问有没有办法把一个资料库里的有编号的栏位
: 转成 Ruby 的阵列
: 例如在 SQL 里是
: id INT(11)
: user1 VARCHAR(200)
: user2 VARCHAR(200)
: user3 VARCHAR(200)
: user4 VARCHAR(200)
: created_at DATETIME
: 用 Ruby 读进 car 後 user 的部份可以变成阵列
: car.id
: car.user[0]
: car.user[1]
: car.user[2]
: car.user[3]
: car.created_at
请用 composed_of, 可以对应栏位到你自订的 class :)
class UserArray < DelegateClass(Array)
def initialize( u1, u2, u3, u4 )
super( [u1,u2,u3,u4] )
end
end
class Car < ActiveRecord::Base
composed_of :user, :class_name => "UserArray",
:mapping => [ [:user1,:u1],[:user2,:u2],[:user3,:u3],[:user4,:u4]]
end
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.245.191
※ 编辑: ihower 来自: 59.115.245.191 (03/22 09:19)
※ 编辑: ihower 来自: 59.115.245.191 (03/22 09:33)