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

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

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

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

Q&A

解決済

2回答

1877閲覧

Rails4 fixtureのプライマリキーが大きくなる

smith

総合スコア73

Ruby on Rails

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

0グッド

0クリップ

投稿2015/04/06 13:30

編集2015/04/06 13:33

初期データfixtureで入れると下記のようにプライマリーが大きくなってしまいます。
どうしたら正しく初期データを入れ込むことができるでしょうか

Category id: 1, parent_id: nil, code: "0000000", name: "root",
Category id: 8375840, parent_id: 1, code: "0050000", name: "家電製品"
Category id: 20068273, parent_id: 280649686, code: "0600600", name: "人文/社会"

ymlの記述が間違っているのでしょうか

lang

1#category.yml 2root: 3 id: 1 4 code: '0000000' 5 name: 'root' 6 7<% # root のカテゴリー 8 #--------------------- 9 {メンズ: 10000, レディース: 20000, キッズ: 30000, インテリア: 40000, 家電製品: 50000, 本: 60000, 10 チケット: 70000, おもちゃ: 80000, エンターテインメント: 90000, スポーツ: 100000}.each do |key, val| %> 11<%= key %>: 12 code: '<%= format('%07d', val) %>' 13 name: '<%= key %>' 14 parent_id: 1 15<% end %> 16 17<% # メンズ の子カテゴリー 18 #--------------------- 19 {トップス: 100100, アウター: 100200, パンツ: 100300, 靴: 100400, 20 帽子: 100500, その他: 100600}.each do |key, val| %> 21<%= "mens_#{key}" %>: 22 code: '<%= format('%07d', val) %>' 23 name: '<%= key %>' 24 parent_id: <%= ActiveRecord::Fixtures.identify(:メンズ) %> 25<% end %> 26 27 28 29<% # レディース の子カテゴリー 30 #--------------------- 31 {トップス: 200100, アウター: 200200, パンツ: 200300, 靴: 200400, 32 帽子: 200500, その他: 200600}.each do |key, val| %> 33<%= "ladies_#{key}" %>: 34 code: '<%= format('%07d', val) %>' 35 name: '<%= key %>' 36 parent_id: <%= ActiveRecord::Fixtures.identify(:レディース) %> 37<% end %> 38 39 40<% # キッズ の子カテゴリー 41 #--------------------- 42 {トップス: 300100, アウター: 300200, パンツ: 300300, 靴: 300400, 43 帽子: 300500, その他: 300600}.each do |key, val| %> 44<%= "kids_#{key}" %>: 45 code: '<%= format('%07d', val) %>' 46 name: '<%= key %>' 47 parent_id: <%= ActiveRecord::Fixtures.identify(:キッズ) %> 48<% end %> 49 50 51 52<% # インテリア 家具 の子カテゴリー 53 #--------------------- 54 {'ソファ/椅子'=> 400100, 'テーブル/机'=> 400200, 'ベット/寝具'=> 400300, 55 収納: 400400, 照明: 400500, キッチン: 400600, その他: 400700}.each do |key, val| %> 56<%= "furniture_#{key}" %>: 57 code: '<%= format('%07d', val) %>' 58 name: '<%= key %>' 59 parent_id: <%= ActiveRecord::Fixtures.identify(:インテリア) %> 60<% end %> 61 62 63 64<% # 家電製品 の子カテゴリー 65 #--------------------- 66 {'パソコン/タブレット'=> 500100, 'スマートフォン/携帯'=> 500200, 生活家電: 500300, 67 オーディオ機器: 500400, 'テレビ/映像機器'=> 500500, カメラ: 500600, その他: 500700}.each do |key, val| %> 68<%= "electronic_#{key}" %>: 69 code: '<%= format('%07d', val) %>' 70 name: '<%= key %>' 71 parent_id: <%= ActiveRecord::Fixtures.identify(:家電製品) %> 72<% end %> 73 74 75 76<% # 本 の子カテゴリー 77 #--------------------- 78 {'漫画/コミック'=> 600100, '文学/小説'=> 600200, 'アート/エンターテインメント'=> 600300, ノンフィクション: 600400, 79 雑誌: 600500, '人文/社会'=> 600600, '趣味/スポーツ'=> 600700, '住まい/暮らし'=> 600800, 'ビジネス/経済'=> 600900, 80 'コンピュータ/インターネット'=> 601000, 教育: 601100, 医学: 601200, その他: 601300}.each do |key, val| %> 81<%= "book_#{key}" %>: 82 code: '<%= format('%07d', val) %>' 83 name: '<%= key %>' 84 parent_id: <%= ActiveRecord::Fixtures.identify(:本) %> 85<% end %> 86 87 88 89<% # チケット の子カテゴリー 90 #--------------------- 91 {国内アーティスト: 700100, 海外アーティスト: 700200, イベント系: 700300, 92 スポーツ: 700400, '演劇/舞台'=> 700500, 'ミュージカル/お笑い'=> 700600, その他: 700700}.each do |key, val| %> 93<%= "ticket_#{key}" %>: 94 code: '<%= format('%07d', val) %>' 95 name: '<%= key %>' 96 parent_id: <%= ActiveRecord::Fixtures.identify(:チケット) %> 97<% end %> 98 99 100<% # おもちゃ の子カテゴリー 101 #--------------------- 102 {テレビゲーム: 800100, トレーディングカード: 800200, フィギア: 800300, 103 プラモデル: 800400, ラジコン: 800500, ぬいぐるみ: 800600, LEGO: 800700, その他: 800800}.each do |key, val| %> 104<%= "toy_#{key}" %>: 105 code: '<%= format('%07d', val) %>' 106 name: '<%= key %>' 107 parent_id: <%= ActiveRecord::Fixtures.identify(:おもちゃ) %> 108<% end %> 109 110 111 112 113<% # エンターテインメント の子カテゴリー 114 #--------------------- 115 {'DVD/Blu-ray'=> 900100, 楽器: 900200, 美術品: 900300, 116 コレクション: 900400, その他: 900500}.each do |key, val| %> 117<%= "entertainment_#{key}" %>: 118 code: '<%= format('%07d', val) %>' 119 name: '<%= key %>' 120 parent_id: <%= ActiveRecord::Fixtures.identify(:エンターテインメント) %> 121<% end %> 122 123 124 125 126 127<% # スポーツ の子カテゴリー 128 #--------------------- 129 {スポーツ用品: 1000100, アウトドア用品: 1000200, 自電車: 1000300, 130 フィッシング: 1000400, その他: 1000500}.each do |key, val| %> 131<%= "sports_#{key}" %>: 132 code: '<%= format('%07d', val) %>' 133 name: '<%= key %>' 134 parent_id: <%= ActiveRecord::Fixtures.identify(:スポーツ) %> 135<% end %> 136 137 138

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

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

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

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

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

guest

回答2

0

<%= key %>: code: '<%= format('%07d', val) %>'

次のようにしてみてください。

<%= key %>: id: 2 code: '<%= format('%07d', val) %>'

明示的に id を指定すればよいです。
id を指定しないと、<%= key %> のハッシュ値が id の値になります。

投稿2015/04/06 14:25

katoy

総合スコア22324

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

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

smith

2015/04/07 14:33

お礼が遅れました。すいません fixturesは主にテストデータの入れ込み時に使うようですね
guest

0

ベストアンサー

fixtureはテスト用なので、初期データの投入は db/seeds.rbに書いてrake db:seedを実行するのがよいです

投稿2015/04/06 13:36

編集2015/04/06 13:38
hello-world

総合スコア1342

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

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

smith

2015/04/06 15:52

rake db:seedのほうがわかりやすいですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問