前提・実現したいこと
Gmailの文字列をDBに入れるコードを実装しているのですが、エラーがでます。
発生している問題・エラーメッセージ
experiment_gmail.rb:16:in `block in <class:User>': undefined method `name_sei=' for #<User:0x007f88d3b17278> (NoMethodError) from experiment_gmail.rb:9:in `map' from experiment_gmail.rb:9:in `<class:User>' from experiment_gmail.rb:3:in `<main>'
該当のソースコード
require 'gmail' class User USERNAME='gmailのアドレス' PASSWORD='gmailのパスワード' gmail = Gmail.new(USERNAME,PASSWORD) gmail.inbox.emails(:from => "メールアドレス" ).map do |mail| mail = mail.body.decoded.encode("UTF-8", mail.charset) name_sei = /氏名: (.+) (.+)/.match(mail) email = /メールアドレス:\s([\w\-._]+@[\w\-._]+.[A-Za-z]+)/.match(mail) user = User.new user.name_sei = name_sei[1..2] user.email = email[1] user.save end end
試したこと
最初experiment_gmail.rb:14:in `block in <main>': uninitialized constant User (NameError)
というエラーがでたので、class User
を定義してエラーを回避しましたが、上記のエラーが起こりました。
name_sei
はテーブルのカラムなので、メソッドではないような気がするのですが、どなたかエラーを回避する術を教えてもらえると嬉しいです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Ruby:2.4.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/18 07:46 編集
2021/05/18 08:29
2021/05/18 08:35
2021/05/19 09:31