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

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

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

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

Ruby on Rails

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

Q&A

解決済

2回答

1066閲覧

Railsチュートリアル11章_herokuにpush出来ません

pochi_char

総合スコア8

Ruby

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/07/02 04:33

前提・実現したいこと

Rails Tutorial11章にて、heorkuに変更内容をpushしようとしたところ、syntax errorが発生しました。エラーメッセージの内容から、config/environments/producion.rbの変更箇所が悪さをしていると推測していますが、何度見返しても記述ミスはありません。

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

remote: SyntaxError: /tmp/build_50d32a6a729bafe6d9fadc4d8759a19e/config/environments/production.rb:73: syntax error, unexpected tSYMBEG, expecting '}'
remote: :port =>'587'
remote: ^
remote: /tmp/build_50d32a6a729bafe6d9fadc4d8759a19e/config/environments/production.rb:74: syntax error, unexpected =>, expecting end-of-input
remote: :user_name => ENV['SENDGRID_USERNAME'],
remote: ^~
:
:
remote: Tasks: TOP => environment
remote: (See full trace by running task with --trace)
remote:
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to fast-depths-48015.

エラーメッセージ

### 該当のソースコード config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp host = 'fast-depths-48015.herokuapp.com' config.action_mailer.default_url_options = { host: host } ActionMailer::Base.smtp_settings = { :address => 'smtp.sendgrid.net', :port => '587', :authentication => :plain, :user_name => ENV['SENDGRID_USERNAME'], :password => ENV['SENDGRID_PASSWORD'], :domain => 'heroku.com', :enable_starttls_auto => true } ### 試したこと GitHubで公開されているRails Tutorialのサンプルコードのコピー(URLは自身のものに書き換え)してみましたが、同じエラーが出ました。 ### 補足情報(FW/ツールのバージョンなど) ruby 2.6.5p114 Rails 5.1.6 VSCode,WSL:Debian

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

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

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

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

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

guest

回答2

0

自己解決

原因はわからず仕舞いでしたが、デプロイできました。
回答をくださった方々、ありがとうございます。

投稿2020/07/24 05:23

pochi_char

総合スコア8

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

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

0

元の回答

エラーメッセージとコードは正確に質問欄にコピー & ペーストされていますか?

ここで必要なコードは、現在ワーキングツリーに展開されているコードではなく、
Heroku にプッシュしているブランチが指し示しているリビジョンのコードです

Heroku にプッシュしているブランチが指し示しているリビジョンのコードと
質問欄にペーストされているコードが異なっている場合は、
ワーキングツリーに展開されているコードを確認して問題がなくても
Heroku 側では異なるコードが処理され、問題が起きることがあります

console

1syntax error, unexpected tSYMBEG, expecting '}'

このエラーメッセージが表示されるときのよくある原因としては
直前の行末に , を忘れているということがあるようです

Ruby on Rails - Railsのメール送信設定についてわからないので教えてください。|teratail

追記

「Heroku にプッシュしているブランチが指し示しているリビジョンのコード」は
どうやって確認するのでしょうか?
検索の仕方が悪いのかどう探しても見つかりません。

第11章 アカウントの有効化 - Railsチュートリアル

$ git push heroku

上記のコマンドを実行したときにエラーが発生したのであれば、
Heroku にプッシュしたブランチが指し示しているリビジョンのコード」は、
そのコマンドを実行したときにチェックアウトしていたブランチの
コマンドを実行した時点での最新のリビジョンです

チュートリアルでは、直前の手順で git checkout master を実施しているので
手順を間違えていなければ master ブランチの最新のリビジョンです

Heroku に push しているコードと参照しているコードに差異がないか確認する方法

1
master ブランチを checkout します:

console

1git checkout master

2
master ブランチを push します:

console

1git push heroku

3
同様のエラーが起こるか確認します

4
同様のエラーが発生した場合、
ローカルの production.rb を確認する前に、
ワーキングツリー上で最新のリビジョンから変更を加えていないかを確認します:

console

1git status

ここで production.rb が表示された場合は
Herokupush しているものとローカルで確認できる状態に差異があります
差異を確認するには、次のコマンドを実行します:

console

1git diff path/to/production.rb

投稿2020/07/06 19:28

編集2020/07/17 04:51
y_shinoda

総合スコア3272

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

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

pochi_char

2020/07/17 04:24

「Heroku にプッシュしているブランチが指し示しているリビジョンのコード」はどうやって確認するのでしょうか?検索の仕方が悪いのかどう探しても見つかりません。 syntax errorについてですが、,の入れ忘れはありませんでした。
y_shinoda

2020/07/17 04:51

回答に追記しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問