Tôi đang cố gắng thiết lập dự án Rails3 đầu tiên của mình và, từ rất sớm, tôi đang gặp sự cố với uuidtools
, số UUIDHelper
hoặc có thể gọi lại của tôi. Tôi rõ ràng đang cố gắng sử dụng UUID và (tôi nghĩ) Tôi đã thiết lập mọi thứ như mô tả trong Ariejan de Vroom's article. Tôi đã thử sử dụng UUID như một khóa chính và cũng đơn giản là một trường bổ sung, nhưng có vẻ như là UUIDHelper
không bao giờ được gọi.UUID trong Rails3
Tôi đã đọc nhiều đề cập về gọi lại và/hoặc người trợ giúp thay đổi trong Rails3, nhưng tôi không thể tìm thấy bất kỳ chi tiết cụ thể nào cho tôi biết cách điều chỉnh. Đây là thiết lập của tôi vì nó đang đứng tại thời điểm này (đã có một vài lần lặp lại):
# migration
class CreateImages < ActiveRecord::Migration
def self.up
create_table :images do |t|
t.string :uuid, :limit => 36
t.string :title
t.text :description
t.timestamps
end
end
...
end
# lib/uuid_helper.rb
require 'rubygems'
require 'uuidtools'
module UUIDHelper
def before_create()
self.uuid = UUID.timestamp_create.to_s
end
end
# models/image.rb
class Image < ActiveRecord::Base
include UUIDHelper
...
end
Mọi thông tin chi tiết sẽ được đánh giá cao.
Cảm ơn.
Đây là cuộc gọi lại duy nhất của bất kỳ loại nào đang được thực hiện tại thời điểm này. Vì lợi ích của khả năng mở rộng, tôi chắc chắn sẽ thực hiện một thay đổi khi tôi nhận được sự cố này được tìm ra và khắc phục.Tôi đã không nhận ra rằng một cuộc gọi lại trong một người trợ giúp sẽ bị ghi đè theo cách đó, nhưng tôi đoán nó có ý nghĩa. –
Tôi tiếp tục thất vọng rằng Rails không cung cấp hỗ trợ UUID nguyên bản và Rails3 - ít nhất là ở trạng thái hiện tại - dường như không hỗ trợ chỉ "hack" hợp lý mà tôi đã tìm thấy. Có một số thông tin tốt trong phản hồi này, vì vậy tôi sẽ đánh dấu nó là câu trả lời trừ khi/cho đến khi có điều gì đó tốt hơn. –