Rails歴3年目の初級〜中級者です。Ruby on RailsのModelのバリデーションについて質問があります。
以下のようなModelが存在し、新規作成する場合にカラムの組み合わせのバリデーションの実装方法が分かりません。
例えば、フォームのcategoryで「車」を選んだ場合、kindは「レクサス」以外はバリデーションエラーになるように実装したいです。
同じように、フォームのcategoryで「パソコン」を選んだ場合、kindは「windows」か「Mac」以外はバリデーションエラーになるようにしたいです。
さらに、フォームのcategoryで「家電」を選んだ場合、kindは「炊飯器」か「冷蔵庫」以外はバリデーションエラーになるようにしたいです。
どうぞ、アドバイスなどよろしくお願い致します。
app/models/item.rb # id :integer not null, primary key # sales_company :string(255) # 販売会社 # serial_number :string(255) # シリアルナンバー # category_id :integer # カテゴリー分類 # kind_id :integer # 種類分類 # created_at :datetime not null # 作成日時 # updated_at :datetime not null # 更新日時
qpp/models/category.rb class Category < ActiveHash::Base self.data = [ {id: 1, name: '車'}, {id: 2, name: 'パソコン'}, {id: 3, name: '家電'} ] end
qpp/models/kind.rb class Kind < ActiveHash::Base self.data = [ {id: 1, name: 'レクサス'}, {id: 2, name: 'windows'}, {id: 3, name: 'Mac'}, {id: 4, name: '炊飯器'}, {id: 5, name: '冷蔵庫'} ] end
app/views/items/new.html.erb <%= form_for @item do |form| %> <%= form.label :sales_company %> <%= form.text_field :sales_company %> <%= form.label :serial_number %> <%= form.text_area :serial_number %> <%= form.label :category_id %> <%= form.text_area :category_id %> <%= form.label :kind_id %> <%= form.text_area :kind_id %> <%= form.submit %> <% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/14 05:23