Rails 4:为什么Carrierwave uploading/writing/saving 没有图像?
Rails 4: why isn't Carrierwave uploading/writing/saving images?
Carrierwave 不会保存、写入或上传图像,即使使用开箱即用的基本教程单图像示例也是如此。所有(基本)代码位都在正确的位置,它不会在前端抛出任何错误消息,似乎可以工作,保存新的 'newsitem',但没有选定的图像。
控制台抛出:
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]]
'new'、'edit' 和 'show' 页面不会抛出任何错误。 'New' 和 'edit' 似乎让我添加图像,它保存了 newsitem,然后在其新页面上显示它,但根本没有图像。所以在表单字段和数据库之间的某个地方,有些东西不起作用。
我检查以确保“:main”在 newsitems 控制器参数中:
def newsitem_params
params.require(:newsitem).permit(:item, :main, :source, :slug, :url, :region_ids => [], :category_ids => [], :story_ids => [])
end
有什么想法吗?
好的,已修复。 Alfie 的评论让我开始搜索与更新属性相关的内容,我发现了一个页面,其中有人提到由于表单设置,参数输入错误。所以我回去看那个,你瞧……
在 'newsitems' 表单上,我最初尝试将 Carrierwave 表单元素和 html 多部分内容放在现有的编辑表单中,如果您愿意,可以使用嵌套表单,这就是关闭更新方法,像这样:
<%= form_for(@newsitem) do |f| %>
rails error notice stuff
<%= form_for @newsitem, :html => {:multipart => true} do |f| %>
old form + carrierwave stuff
<% end %>
<% end %>
而答案只是:
<%= form_for @newsitem, :html => {:multipart => true} do |f| %>
rails error notice stuff
old form + carrierwave stuff
<% end %>
谢谢阿尔菲,每条小评论都很重要。
Carrierwave 不会保存、写入或上传图像,即使使用开箱即用的基本教程单图像示例也是如此。所有(基本)代码位都在正确的位置,它不会在前端抛出任何错误消息,似乎可以工作,保存新的 'newsitem',但没有选定的图像。
控制台抛出:
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]]
'new'、'edit' 和 'show' 页面不会抛出任何错误。 'New' 和 'edit' 似乎让我添加图像,它保存了 newsitem,然后在其新页面上显示它,但根本没有图像。所以在表单字段和数据库之间的某个地方,有些东西不起作用。
我检查以确保“:main”在 newsitems 控制器参数中:
def newsitem_params
params.require(:newsitem).permit(:item, :main, :source, :slug, :url, :region_ids => [], :category_ids => [], :story_ids => [])
end
有什么想法吗?
好的,已修复。 Alfie 的评论让我开始搜索与更新属性相关的内容,我发现了一个页面,其中有人提到由于表单设置,参数输入错误。所以我回去看那个,你瞧……
在 'newsitems' 表单上,我最初尝试将 Carrierwave 表单元素和 html 多部分内容放在现有的编辑表单中,如果您愿意,可以使用嵌套表单,这就是关闭更新方法,像这样:
<%= form_for(@newsitem) do |f| %>
rails error notice stuff
<%= form_for @newsitem, :html => {:multipart => true} do |f| %>
old form + carrierwave stuff
<% end %>
<% end %>
而答案只是:
<%= form_for @newsitem, :html => {:multipart => true} do |f| %>
rails error notice stuff
old form + carrierwave stuff
<% end %>
谢谢阿尔菲,每条小评论都很重要。