如何将对象“id”存储在迁移文件中?
我正在使用 Ruby on Rails 3.0.7 和 MySQL 5.1。我想强制将对象 id
存储在迁移文件中。例如我有这个:
User.create!(
:name => 'Test name'
)
但我想做这样的事情:
User.create!(
:id => '12345', # Force to store the object data with id '12345'
:name => 'Test name'
)
注意:上面的代码不会强制数据库中的id
值。
可能吗?如果是这样,怎么办?
I'm using Ruby on Rails 3.0.7 and MySQL 5.1. I'd like to force to store the object id
in a migration file. For example I have this:
User.create!(
:name => 'Test name'
)
but I would like to do something like this:
User.create!(
:id => '12345', # Force to store the object data with id '12345'
:name => 'Test name'
)
Note: the above code will not force the id
value in the database.
Is it possible? If so, how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您无法批量分配
id
等受限字段。但您可以单独设置它们:或
You can't mass assign the restricted fields like
id
. But you can individually set them:OR
您确实可以批量分配受保护的字段。以下是具体操作方法。在您的模型中定义以下内容:
您在这里所做的是重写基本方法:
...仅包含
inheritance_column
,不包括id
或primary_key< /代码> 列。此时,您现在可以为该模型批量分配 ID。
You can indeed mass-assign protected fields. Here's how to do it. In your model define the following:
What you are doing here is overriding the base method:
...to include only the
inheritance_column
excluding theid
, orprimary_key
column. At this point you can now mass-assign the ID for that model.