0
我創建了一個模型(後)有兩個父母社區和用戶。 現在我想這可能是community_id字段可能會或可能不會被填充,所以我運行遷移說明change_column_null和change_column_default爲允許community_id的null和默認值爲零如何使一個模型的列在rails5中可選
現在錯誤是社區應該存在,所以我應該在軌道控制檯中創建id = 0的社區,這是一個很好的做法嗎?
或我在下面的代碼中做錯了什麼,允許null爲真?
Post.rb(模型)
class Post < ApplicationRecord
belongs_to :user
belongs_to :community
end
遷移:
class Postcommunityidallownull < ActiveRecord::Migration[5.1]
def change
change_column_null :posts, :community_id, true
change_column_default :posts,:community_id, 0
end
end
thnx,但我在工作的人elses代碼。 如何立即更新表格。我想正確地做,否則我上面的代碼仍然正常工作 –
如果確實是可選的,'community_id'應該爲'null'而不是0。如果在模型中添加'optional:true',它將僅適用於將來的記錄。要改變現有的,你需要一個遷移。 'change_column_default(:posts,:community_id,nil)'應該做的。 – Vlad
感謝Ursus&@Vlad它的工作! :) –