2011-12-26 39 views
19

Tôi mới làm Mẫu trong đường ray. Tôi biết cách tạo mô hình & cách thêm cột cho họ. Bây giờ tôi muốn đặt giá trị mặc định cho một cột nhưng tôi không nhận được rằng chính xác như thế nào tôi có thể làm điều đó.cách đặt giá trị mặc định thành cột trong đường ray trong khi tạo di chuyển

tôi tạo ra mô hình mới

rails g model User 

sau đó thêm cột để nó

rails generate migration AddNotificationEmailToUsers notification_email:boolean 

Bây giờ tôi muốn thiết lập giá trị mặc định của cột thông báo là đúng. Vui lòng hướng dẫn tôi cách viết di chuyển cho tương tự. Cảm ơn bạn!!!

Trả lời

44

Bạn không thể làm điều này từ dòng lệnh - bạn sẽ phải chỉnh sửa các tập tin chuyển đổi và thay đổi dòng tương ứng với một cái gì đó giống như

add_column :users, :notification_email, :boolean, :default => true 
+0

Cảm ơn, mà giúp tôi –

2

Frederick Cheung là đúng, bạn sẽ cần phải chỉnh sửa di cư tập tin cho việc này. Chỉ cần cập nhật nhỏ thêm dấu phẩy sau loại dữ liệu trước khi chỉ định giá trị mặc định.

add_column :users, :notification_email, :boolean, :default => true 
+0

Hey guys nó không phải đang làm việc cho tôi biết là có bất kỳ di cư như đường ray g AddDefaultsToTablename di cư: TableName,: ColumnName: Giá trị mặc định? –

+0

Không, không có cách nào trực tiếp cho việc này, Điều này sẽ hoạt động trong tệp di chuyển được tạo, lỗi nào bạn nhận được? – PriteshJ

13

Cách tiếp cận tốt nhất ở đây là sử dụng change_column trong di chuyển của bạn. Nó được quảng cáo để thay đổi loại nhưng bạn có thể sử dụng nó để đính kèm một mặc định cho cột hiện có.

tôi đã

location :integer 

trong schema và tôi muốn mặc định bằng không, vì vậy tôi đã viết một di cư như vậy:

change_column :player_states, :location, :integer, :default => 0 

Điều đó đã làm các trick.

0

Hiện tại không có cách nào để xác định giá trị mặc định được xác định thông qua thiết bị đầu cuối trong quá trình di chuyển đường ray.

bạn có thể thực hiện các bước dưới đây để chỉ định giá trị mặc định cho một cột

1). Thực hiện

$ rails generate migration AddNotificationEmailToUsers notification_email:boolean 

2). Chỉ định giá trị mặc định của cột mới thành TRUE/FALSE bằng cách chỉnh sửa tệp di chuyển mới được tạo.

class AddNotificationEmailToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :notification_email, :boolean, default: true 
    end 
end 

3) .Run ở trên di chuyển được tạo bằng cách thực thi.

$ rake db:migrate 
Các vấn đề liên quan