Re: [問題] 有沒有辦法把資料欄位對映到陣列?
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):