質問編集履歴

4 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/05/15 17:04  投稿

カスタムバリデーションの中でデフォルトのバリデーションを呼び出したい
{"ja" => "日本語コンテンツ", "en" => "English Contents"}
のようなハッシュで入力データを持っていて
各要素に対して標準のバリデーションをかけることはできないでしょうか
例えばそれぞれの入力の長さをバリデーションする場合
モデル
```
validates :contents, hash: {length: {maximum: 64}}
```
カスタムバリデーション
```
class HashValidator < ActiveModel::EachValidator
 def validate_each(record, attribute, value) # バリデーションメソッド
   value.each(|k,v| {
   value.each{|k,v|
     # v に対して options = (length: {maximum: 64}) のバリデーションを呼びだしたい
   })
   }
 end
end
```
のような感じでかく方法があれば教えていただけるとありがたいです
  • Ruby on Rails

    14287 questions

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

3 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/05/15 16:39  投稿

カスタムバリデーションの中でデフォルトのバリデーションを呼び出したい
{"ja" => "日本語コンテンツ", "en" => "English Contents"}
のようなハッシュで入力データを持っていて
各要素に対して標準のバリデーションをかけることはできないでしょうか
例えばそれぞれの入力の長さをバリデーションする場合
モデル
```
validates :contents, hash: {length: {maximum: 64}}
```
カスタムバリデーション
```
class HashValidator < ActiveModel::EachValidator
 def validate_each(record, attribute, value) # バリデーションメソッド
   value.each(|k,v| {
     # v に対して options (length: {maximum: 64}) のバリデーションを呼びだしたい
     # v に対して options = (length: {maximum: 64}) のバリデーションを呼びだしたい
   })
 end
end
```
のような感じでかく方法があれば教えていただけるとありがたいです
  • Ruby on Rails

    14287 questions

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

2 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/05/15 16:39  投稿

カスタムバリデーションの中でデフォルトのバリデーションを呼び出したい
{"ja" => "日本語コンテンツ", "en" => "English Contents"}
のようなハッシュでデータを持っていて
のようなハッシュで入力データを持っていて
各要素に対して標準のバリデーションをかけることはできないでしょうか
例えばそれぞれの入力の長さをバリデーションする場合
モデル
```
validates :contents, hash: {length: {maximum: 64}}
```
カスタムバリデーション
```
class HashValidator < ActiveModel::EachValidator
 def validate_each(record, attribute, value) # バリデーションメソッド
   value.each(|k,v| {
     # v に対して options (length: {maximum: 64}) のバリデーションを呼びだしたい
   })
 end
end
```
のような感じでかく方法があれば教えていただけるとありがたいです
  • Ruby on Rails

    14287 questions

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

1 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/05/15 16:34  投稿

カスタムバリデーションの中でデフォルトのバリデーションを呼び出したい
{"ja" => "日本語コンテンツ", "en" => "English Contents"}
のようなハッシュでデータを持っていて
例えばそれぞれの入力の長さをバリデーションする場合
モデル
```
validates :contents, hash: {length: {maximum: 64}}
```
カスタムバリデーション
```
class HashValidator < ActiveModel::EachValidator
 def validate_each(record, attribute, value) # バリデーションメソッド
   value.each(|k,v| {
     # v に対して options (length: {maximum: 64}) のバリデーションを呼びだしたい
   })
 end
end
```
  • Ruby on Rails

    14287 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る