Ruby on rails 如何制作模型&x27;rails5中的s列可选
我创建了一个模型(post),它有两个父社区和用户。 现在我希望Ruby on rails 如何制作模型&x27;rails5中的s列可选,ruby-on-rails,ruby,Ruby On Rails,Ruby,我创建了一个模型(post),它有两个父社区和用户。 现在我希望community\u id字段可能会被填充,也可能不会被填充,所以我运行了一个迁移,声明change\u column\u null和change\u column\u default允许community\u id的null,默认值为零 现在的错误是社区应该存在,所以我应该在rails控制台中创建一个id=0的id社区,这是一个好的实践吗 或者我在下面的代码中做了一些错误的事情,允许null true Post.rb(模型) c
community\u id
字段可能会被填充,也可能不会被填充,所以我运行了一个迁移,声明change\u column\u null
和change\u column\u default
允许community\u id
的null,默认值为零
现在的错误是社区应该存在,所以我应该在rails控制台中创建一个id=0的id
社区,这是一个好的实践吗
或者我在下面的代码中做了一些错误的事情,允许null true
Post.rb(模型)
class Post
迁移:
class Postcommunityidallownull < ActiveRecord::Migration[5.1]
def change
change_column_null :posts, :community_id, true
change_column_default :posts,:community_id, 0
end
end
class Postcommunityidallownull
当您想要一个属于您的可选时:
1) 只是不要在字段的迁移中添加
null: false
2) 在模型使用中
belongs_to :community, optional: true
当您想要一个可选的属于\u时
:
1) 只是不要在字段的迁移中添加
null: false
2) 在模型使用中
belongs_to :community, optional: true
thnx,但我正在处理别人的代码。现在如何更新表。我想做得很好,否则我上面的代码仍然可以正常工作community\u id
应该是null
而不是0,如果它确实是可选的。如果将可选:true
添加到模型中,则它将仅适用于将来的记录。要更改现有的,您需要迁移<代码>更改\u列\u默认值(:posts,:community\u id,nil)
应该可以做到这一点。很荣幸,先生;)thnx,但我正在处理别人的代码。现在如何更新表。我想做得很好,否则我上面的代码仍然可以正常工作community\u id
应该是null
而不是0,如果它确实是可选的。如果将可选:true
添加到模型中,则它将仅适用于将来的记录。要更改现有的,您需要迁移<代码>更改\u列\u默认值(:posts,:community\u id,nil)应该可以做到这一点。很荣幸,先生;)