Di chuyển Rails: Loại bỏ ràng buộc


135

Tôi có một bảng trong ứng dụng Rails (trong lược đồ.rb) trông giống như:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address", :null=>false
end

Tôi muốn viết một di chuyển đường ray để cho phép null cho trường địa chỉ. tức là sau khi di chuyển, bảng trông như thế này:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address"
end

Tôi cần làm gì để loại bỏ các ràng buộc?

Câu trả lời:



247

Trong Rails 4+ để xóa ràng buộc không null, bạn có thể sử dụng change_column_null:

change_column_null :users, :address, true

Bạn đã thực sự thử điều này? Nếu bạn lướt vào mã nguồn cho các chức năng, bạn sẽ thấy không có gì nhưng:raise NotImplementedError, "change_column_null is not implemented"
drusepth

3
đã sử dụng nó trong postgresql. Rails định nghĩa nó trong bộ điều hợp cơ sở dữ liệu cụ thể xem postgres , mysql . có thể tìm kiếm người khác trong apidock . Vì vậy, sẽ phải kiểm tra bộ điều hợp cơ sở dữ liệu để được hỗ trợ, trong trường hợp bất kỳ ai cũng nhận đượcNotImplementedError
deepak

1
Upvote! Đây là liên kết đến các hướng dẫn Rails là tốt.
mcKain

1
Đây phải là câu trả lời được chọn
nahtnam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.