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

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

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

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1483閲覧

AWSのS3に画像を保存できるように実装したが、ビューが表示出来なくなりました。

yutaro_0529

総合スコア12

Ruby on Rails

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/11/02 15:28

編集2020/11/02 15:36

前提・実現したいこと

投稿した画像がアクティブストレージに保存され、
画像の表示が出来き、AWSのS3に画像を保存し、
ビューに表示できるようにしたいです。

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

RuntimeError in Items#index Showing /Users/uraokayuutarou/projects/nostalgia/app/views/items/_item.html.erb where line #1 raised: YAML syntax error occurred while parsing

該当のソースコード

Rubyonrails

1/Users/uraokayuutarou/projects/nostalgia/config/storage.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): did not find expected key while parsing a block mapping at line 1 column 1 2Extracted source (around line #1): 3 4 5 <div class="content_post" style="background-image: url(<%= Rails.application.routes.url_helpers.url_for(item.image) if item.image.attached? %>);">

試したこと

/Users/uraokayuutarou/projects/nostalgia/config/storage.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): did not find expected key while parsing a block mapping at line 1 column 1
Extracted source (around line #1):

<div class="content_post" style="background-image: url(<%= item_tag(item.image) if item.image.attached? %>);"> 上記のコードで実行

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

config/envilonments/devlopment
default_url_options[:host] = "localhost:3000"

上記のコードがurl_optionがローカルの環境でしか、
画像が保存出来ないのかもしれない。

まだよく理解出来てないのですがターミナルで、
vim ~/.zshrcを実行し、export AWS_ACCESS_KEY_ID="Access key IDの値"
export AWS_SECRET_ACCESS_KEY="Secret access key"
を設定し、追加した環境変数を使えるようにsource ~/.zshrcは実行しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

YAML syntax error occurred while parsing

Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): did not find expected key while parsing a block mapping at line 1 column 1

ということなので、YAMLの文法エラーです。
まずそちらを見直してください。

投稿2020/11/02 15:38

yu_1985

総合スコア7447

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

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

yutaro_0529

2020/11/02 15:45

ご回答頂きありがとうございます。 見直してみます。
yutaro_0529

2020/11/02 16:00

YAML syntax errorで検索をかけ、 https://qiita.com/furikake6000/items/2be2752d2a803474ee42 上記の投稿を見つけ、””を付け足してみました。 amazon: service: S3 access_key_id: ”<%= ENV['AWS_ACCESS_KEY_ID'] %>” secret_access_key: ”<%= ENV['AWS_SECRET_ACCESS_KEY'] %>” region: ap-northeast-1 bucket: nostalgia2020 item_paramsのデータがうまく取得出来なくなり、 NoMethodErrorが発生しました。 in ItemsController#create undefined method `upload' for nil:NilClass Extracted source (around line #20): app/controller/item def create Item.create(item_params) # アイテムモデル保存する # praivateでitem_paramsで引用してくるものを指定
yu_1985

2020/11/02 16:04

読んで字のごとくNoMethodErrorですね。 > undefined method `upload' for nil:NilClass uploadというメソッドを参照しているところがありますがどこかでちゃんと定義されていますか? このようにエラーメッセージを根拠に原因箇所の絞り込みが行なえますので、まずエラーメッセージをよく読んでそれにしたがってトラブルシュートしてみてください。
yutaro_0529

2020/11/03 02:28

ご回答ありがとうございます!! コントローラーにuploadメソッドを参照されていなく、 newメソッドで新規投稿できるようにしていました。 def index @items = Item.includes(:user).sample(10) # includesメソッドを使用したためallメソッドは省略、N+1問題解決2回のアクセスで済む end @items = Item.includes(:user) def new @item = Item.new end def create Item.create(item_params) # アイテムモデル保存する # praivateでitem_paramsで引用してくるものを指定 end createメソッドでitem.paramsがテーブルに保存されていて、 active storageにimageデータも保存されている状態でした。 私の予測ですと、viewに問題がありそうなので、 引き続き調べてみます!!
yutaro_0529

2020/11/04 04:43

すみません、エラーの原因が突き止めれず、 paramsの情報がS3保存出来ていないことは理解出来たのですが、 解決しなかったので、NoMethodErrorで再質問してみます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問