OSDN Git Service

refs #716 お問い合わせ種類のバリデーション追加
authorymatsumoto <ymatsumoto@appirits.com>
Tue, 11 Jun 2013 07:32:07 +0000 (16:32 +0900)
committerYOSHIDA Hiroki <hyoshida@appirits.com>
Thu, 13 Jun 2013 03:03:47 +0000 (12:03 +0900)
app/models/inquiry.rb
spec/models/inquiry_spec.rb

index c8b2415..215cf07 100644 (file)
@@ -3,6 +3,10 @@ class Inquiry < ActiveRecord::Base
 
   acts_as_paranoid
   TABLE_NAME_JP = "お問い合わせ"
+  GOODS, ORDER, CLAIM, SEND, CAMPAIGN, RISAGASU, SITE, OTHER = 1, 2, 3, 4, 5, 6, 7, 8
+  KIND_NAMES = {GOODS=>"商品について", ORDER=>"注文について", CLAIM=>"ご請求について",
+              SEND=>"発送について", CAMPAIGN=>"キャンペーンについて", RISAGASU=>"K&Bスタイルについて",
+              SITE=>"サイトについて", OTHER=>"その他"}
 
   validates_presence_of :email
   validates_presence_of :body
@@ -11,6 +15,7 @@ class Inquiry < ActiveRecord::Base
 
   validates_length_of :body, :maximum => 3000
   validates_length_of :name, :maximum => 100
+  validates_inclusion_of :kind, :in => KIND_NAMES.keys
 
   #validates_format_of :email, :with => /^(([^@\s]+)@((?:[-a-z0-9]+\.)*[a-z]{2,})|)$/i
   validates_format_of :tel, :with => /^[0-9()-]*$/, :allow_nil => true, :message => "の書式が不正です"
@@ -26,11 +31,6 @@ class Inquiry < ActiveRecord::Base
     end
   end
 
-  GOODS, ORDER, CLAIM, SEND, CAMPAIGN, RISAGASU, SITE, OTHER = 1, 2, 3, 4, 5, 6, 7, 8
-  KIND_NAMES = {GOODS=>"商品について", ORDER=>"注文について", CLAIM=>"ご請求について",
-              SEND=>"発送について", CAMPAIGN=>"キャンペーンについて", RISAGASU=>"K&Bスタイルについて",
-              SITE=>"サイトについて", OTHER=>"その他"}
-
   def show_kind_name
     KIND_NAMES[self.kind]
   end
index 3f9369c..767fb99 100644 (file)
@@ -49,8 +49,23 @@ describe Inquiry do
       @inquiry.tel = "0801111222a"
       @inquiry.should_not be_valid
     end
+
+    describe "お問い合わせ種別" do
+
+      it "正しい種別だと成功すること" do
+        Inquiry::KIND_NAMES.keys.each do |value|
+          @inquiry.kind = value
+          @inquiry.should be_valid
+        end
+      end
+
+      it "不正な種別だと失敗すること" do
+        @inquiry.kind = Inquiry::KIND_NAMES.keys.max + 1
+        @inquiry.should_not be_valid
+      end
+    end
   end
-  
+
   describe "表示系" do
     it "問い合わせ種類" do
       inquiry = Inquiry.new(:kind=>Inquiry::GOODS)