🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

652閲覧

モデルクラスが存在しないとエラーが発生する(uninitialized constant Rank (NameError)

ruby_krt

総合スコア5

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/11/07 10:14

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
csvファイルを開いて配列の値を書き込みながら、Rankというtableに値をcreateする処理を作成したいです。
しかし、uninitialized constant Rank (NameError)とRankというモデルクラスが存在しないと怒られます。
app/models/rank.rbに定義されているのは確認しています。

発生している問題・エラーメッセージ

エラーメッセージ Traceback (most recent call last): 4: from test.rb:24:in `<main>' 3: from C:/Ruby25-x64/lib/ruby/2.5.0/csv.rb:1289:in `open' 2: from test.rb:25:in `block in <main>' 1: from test.rb:25:in `each' test.rb:27:in `block (2 levels) in <main>': uninitialized constant Rank (NameError) Did you mean? Range

該当のソースコード

ソースコード require 'csv' a = [[123000000, "a", "a"], [1000, "b" "b"], [500000, "c", "c"], [15000, "d", "d"], [20000, "", ""]] a.delete_if {|data| data[1] == ""} c = a.sort_by{|x| x[0]}.reverse p c c.each do |x| if x[0] >= 10000 x[0] = x[0].to_s if x[0].match(/(\d*)[0]{4}$/) x[0] = x[0].gsub(/(\d*)[0]{4}$/, '\1万人') elsif x[0].match(/(\d*)[0]{3}$/) x[0] = x[0].gsub(/(\d*)([1-9])[0]{3}$/, '\1.\2万人') else "例外です" end else x[0] = "#{x[0]}人" #x[0] = x[0].to_s.gsub(/(\d*)/, '\1人') end end p c csv_format = CSV.open("tet.csv", "w:UTF-8") do |test| c.each do |youtuber_data| test << youtuber_data rank = Rank.create(name: data[0], channel_id: data[1], number_of_registrant: data[2]) puts csv_format end end

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
ruby 2.5.5p157 (2019-03-15 revision 67260) [x64-mingw32]

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

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

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

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

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

gouf

2019/11/07 10:23

当該コード (CSV を処理する) は、どこに保存していますか?
ruby_krt

2019/11/07 16:42

返信ありがとうございます;; コードのパスはこちらになります。 C:\Users\krt11\SEfile\test_app\config\youtuber_list¥test.rb
guest

回答1

0

Rails外からRailsの機能を使うにはrails runnerを使ってください。

投稿2019/11/07 21:36

asm

総合スコア15149

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問