0
私は、2人の親のコミュニティとユーザーを持つモデル(投稿)を作成しました。 今、私は私が今エラーがコミュニティがなければならないことである許可すると、デフォルト値はゼロモデルの列をrails5でオプションにする方法
するヌルcommunity_idのためchange_column_nullとchange_column_defaultを述べ移行を実行してcommunity_idフィールドがまたは満たされるmaynotことが可能かもしれないことを望みます存在するので、私はid = 0のコミュニティをレールコンソールに作成する必要があります。それは良い方法ですか?
または私は以下のコードを次のように間違っていますか?
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'でなくてはなりません。モデルに 'optional:true'を追加すると、将来のレコードにのみ適用されます。既存のものを変更するには、移行が必要です。 'change_column_default(:posts、:community_id、nil)'はこのトリックを行うべきです。 – Vlad
ありがとうUrsus&@Vladそれは働いた! :) –