0

私のプログラムは、「automated_group」のプレフィックスを付けて、いくつかのグループを自動的に作成しようとしています。すべてのグループをロードするときに表示されず、編集できません。しかし、ユーザーがそれを行うのを制限する必要があります。しかし、検証関数を作成すると、アプリはそれを実行できず、group.save は false を返します。他の属性を更新しても、名前が検証されないため、保存できません。

他に方法はありますか?場合によっては検証を使用したり、値を変更している人を確認したりしますか?

前もって感謝します

4

2 に答える 2

0

モデルの特定の検証方法をスキップして、答えの半分を見つけました

attr_accessor :automated_creation
validate :check_automated_name, unless: :automated_creation

def check_automated_name
#...
end

そして私のコントローラーで:

def get_automated_group
    name = "automated_group_#{product.id}"
    group = Group.find(name: name).first
    group Group.new(automated_creation: true) unless group.blank?
    returrn group
end

更新時: 名前の変更が発生したことを check_automated_name 関数で確認します。

group.name_changed?

そのため、「名前」を除いて、他のすべてのものを更新できます。これは、レール自体から作成する唯一の方法です。

于 2013-07-07T11:36:49.457 に答える