2015-11-12 46 views
0

我完全是Ruby和Rails的新手,並且在本教程中遇到困難。 https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails@ s3_direct_post.fields:沒有將nil隱式轉換爲字符串

我得到的錯誤是當我導航到http://localhost:3000/users/new,如下所示。

TypeError in Users#new

Showing /home/tomt/myapp/app/views/users/_form.html.erb where line #1 raised:

no implicit conversion of nil into String Extracted source (around line #1): <%= form_for(@user, html: { class: 'directUpload', data: { 'form-data' => (@s3_direct_post.fields), 'url' => @s3_direct_post.url, 'host' => URI.parse(@s3_direct_post.url).host } }) do |f| %>

我相信問題是由@ s3_direct_post.fields造成的,因爲如果我「表單數據」 =>(Hash.new),則頁面加載替換它。但是,這不是一個有效的修復。爲什麼@ s3_direct_post.fields不適用?我該如何解決這個問題?

回答

1

我終於搞清楚了這一點,在我的aws.rb中,我使用的是AWS_ACCESS_KEY_ID,但是在我的實際環境中,我將它定義爲缺少_ID的AWS_ACCESS_KEY。

錯誤Rails給了我 - 在下面 - 給我發了一個完整的雁羣追逐。我經過很多次回顧我的教程之後才發現真正的原因。

no implicit conversion of nil into String Extracted source (around line #1): <%= form_for(@user, html: { class: 'directUpload', data: { 'form-data' => (@s3_direct_post.fields), 'url' => @s3_direct_post.url, 'host' => URI.parse(@s3_direct_post.url).host } }) do |f| %>

好吧,這是一個很好的教訓,也許我的經驗將有助於未來的人。

+0

我有同樣的錯誤:本質上,如果你的環境變量不完全正確,你會得到這個錯誤。檢查這些:['AWS_ACCESS_KEY_ID'],ENV ['AWS_SECRET_ACCESS_KEY'] – FlyingV

相關問題