【问题标题】:Ruby on Rails generate ActiveRecord model with settingsRuby on Rails 使用设置生成 ActiveRecord 模型
【发布时间】:2015-07-15 00:21:03
【问题描述】:

我需要通过在终端中使用命令生成模型来创建模型
rails generate model ...

如何使用该命令在其中一个列上设置唯一性验证以及 primary_key 字段的名称? 我发现如何做到这一点:
rails g model model_name field_name1:type:uniq field_name2:type:primary_key...

它为数据库中的表设置primary_key和迁移时某些字段的唯一性。但是我想为 ActiveRecord 模型定义设置,该模型将存储在我项目的“models”文件夹中的“ModelName.rb”文件中。

现在我每次操作模型记录时都会调用ModelName.validates_uniqueness_of(:field_name)方法,以防止在:field_name1上添加重复值的记录

【问题讨论】:

  • 配置您的模型以进行验证,而不是手动进行。参考this
  • 正如@Abhi 所说,它超出了该生成器的范围。它们旨在为您提供准系统(脚手架),然后将其更改为您想要的。

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord


【解决方案1】:

您可以使用 validate 助手 uniqueness: true 在保存对象之前验证属性值的唯一性。

class ModelName < ActiveRecord::Base
  validates :field_name1 uniqueness: true
end

正如@Abhi 为您指出的那样,请查看Active Record Validations 文档。

【讨论】:

    猜你喜欢
    • 2013-04-18
    • 1970-01-01
    • 2014-08-23
    • 2016-10-20
    • 2012-12-27
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    相关资源
    最近更新 更多