即使使用開箱即用的基本教程單圖示例,Carrierwave也不會保存,書寫或上傳圖像。代碼的所有(基本)位都在正確的位置,並且它不會在前端發出任何錯誤消息,看起來可以工作,保存新的'newsitem',但沒有選定的圖像。Rails 4:爲什麼Carrierwave沒有上傳/寫入/保存圖像?
控制檯拋出了:
Started PATCH "/newsitems/63" for ::1 at 2015-08-08 22:24:43 +0200
Processing by NewsitemsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"gbbna69pcZY1h8fG5s/4CdbFw48D0FakaWehZURUSFcfPPJcuamyduFLtazYvjlRrhXgurEirxceUSxoK4RQwg==", "newsitem"=>{"slug"=>"asdfasf", "source"=>"", "url"=>"", "item"=>"asdfasdf", "story_ids"=>["3", ""], "region_ids"=>["2", ""], "category_ids"=>["5", ""], "main"=>"24m-podemos-ballot-papers.jpg"}, "commit"=>"Update Newsitem", "id"=>"63"}
Newsitem Load (0.1ms) SELECT
blah, blah, blah…
最重要的是內,爲您節省從一路向右滾動,它拿起:
"main"=>"24m-podemos-ballot-papers.jpg"
但是再往PATCH聲明,我們得到:
SQL (0.4ms) UPDATE "newsitems" SET "main" = ?, "updated_at" = ? WHERE "newsitems"."id" = ? [["main", nil], ["updated_at", "2015-08-08 20:24:43.490668"], ["id", 63]]
'新','編輯'和'顯示'頁面不會引發任何錯誤。 '新'和'編輯'似乎讓我添加圖像,它保存了newsitem,然後將其顯示在新頁面上,但根本沒有圖像。因此,表單域和數據庫之間的某處不起作用。
我檢查,以確保 ':主' 是newsitems控制器參數:
def newsitem_params
params.require(:newsitem).permit(:item, :main, :source, :slug, :url, :region_ids => [], :category_ids => [], :story_ids => [])
end
任何想法?
很明顯,文件從服務器日誌傳遞到參數中。現在爲了更新,我確定你將'newsitem_params'傳遞給update_attributes方法。你可以驗證'newsitem_params'中的內容嗎?這應該是第一個看的地方。 – Alfie
呃,不知道你的意思,Alfie ...你是什麼意思「驗證newsitem_params中的內容」?不是'def newsitem_params'位? –
檢查'newsitem_params'方法返回的內容。用戶Rails記錄器或它的東西。 – Alfie