管理画面からの操作の場合にカスタムValidatorが作動しないようにするにはどうしたら良いでしょうか?
管理画面はactiveadminを使用しています。
item model
lang
1#タイムリミットが過ぎていないアイテムを編集しようとした場合に作動する 2 3class RelistTimeValidator < ActiveModel::Validator 4 def validate(record) 5 user_id = User.current_user.id 6 @item = Item.find_by(user_id: user_id, id: record.id) 7 record.errors[:base] << 'エラータイムリミットが過ぎていません' \ 8 if @item.limit_day - Time.now > 0 9 end 10 end 11 12 13 14validates_with RelistTimeValidator , on: :update
lang
1#item model 2validates :limit_day, timeliness: { on_or_after: :today, format: '%Y/%m/%d %H:%M' }, allow_blank: false, on: :item_update_by_user 3 4 5 6#item controller 7if @item.limit_check 8 respond_to do |format| 9 @item.attributes = {item_status_id: 1, limit_check: false} 10 if @item.save(context: :item_update_by_user) 11 format.html { redirect_to @item, notice: 'アイテムを再出品しました。' } 12 format.json { render :show, status: :ok, location: @item } 13 else 14 format.html { render :relist } 15 format.json { render json: @item.errors, status: :unprocessable_entity } 16 end 17 end 18 else 19 respond_to do |format| 20 @item.attributes = {item_status_id: 1, limit_check: false} 21 if @item.save(context: :item_update_by_user) 22 format.html { redirect_to @item, notice: 'アイテムを編集しました。' } 23 format.json { render :show, status: :ok, location: @item } 24 else 25 format.html { render :edit } 26 format.json { render json: @item.errors, status: :unprocessable_entity } 27 end 28 end 29 end 30 end 31 32#form 33 <%= f.text_field :limit_day %> 34
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/06/23 06:58
2015/06/23 07:21