質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

443閲覧

決まった文字列が含まれていないとvalitacionがかかって エラーで登録できないようにしたい

Toshi-6543

総合スコア19

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/05/21 05:00

編集2021/05/21 05:15

Rails5.2でtitleに複数の決まった文字列が含まれていないとvalitacionがかかって
エラーで登録されないシステムを考えていますがうまくいきません。

モデル Artileモデル
カラム名 title
含みたい文字列(曖昧いずれか) 新規 返信 再送信

やってみたことapp/model/artile.rbに下記を追記
validates :title, inclusion: { in: %w(新規 返信 再送信) }

class Article < ApplicationRecord validates :title, presence: true validates :title, inclusion: { in: %w(新規 返信 再送信) } belongs_to :user end

実行結果
1.いづれかの文字列が完全一致であれば投稿ができる(これはOK)
2.他の文字列の中に新規、返信もしくは再送信が含まれて(例 新規 案件について)いてもvalidateがかかり登録できない 
エラーメッセージ
title is not included in the list
3、新規 返信 重要 以外のメッセージはvalidateがかかり登録できない(これはOK)

上記 2のケースでも正常登録できるようにしたいと思ってます。
ご指導をお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

validate :適切なmethod名 def 適切なmethod名 if title !~ %r(新規|返信|再送信) errors.add( 適切な引数 ) end end

ではどうでしょう

投稿2021/05/22 01:16

winterboum

総合スコア23393

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Toshi-6543

2021/05/22 03:50

validateをかけることができました。 ありがとうございました。 class Article < ApplicationRecord validates :title, presence: true validates :user_id, presence: true validate :title_validate belongs_to :user def title_validate if title !~ %r(新規|返信|再送信) errors[:base] << "特定の文字が含まれておりません" end end end
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問