【发布时间】:2014-05-16 18:53:52
【问题描述】:
到目前为止,我得到了一个包含基本信息的模型“utilisateur”。我想添加横幅图片。
我运行了rails g uploader banner、rails g migration AddBannerToUtilisateur banner:string,并将mount_uploader :banner BannerUploader 添加到模型中(当然我运行了db:migrate 并重新启动服务器)。
如果我创建一个新的“utilisateur”,我认为上传应该可以工作(它适用于“utilisateur”的帖子),但在这里,我只想更新当前的“utilisateur”并附加一个新的横幅。
我不能使用控制器中的UPDATE,因为我必须提供所有“utilisateur”信息。我想做一个单独的updatebanner 函数。
这是我的表格:
<%=form_for :utilisateur, :url => updatecover_path, :html => {:multipart => true} do |f|%>
<%=f.file_field :banner%>
<%=f.submit%>
<%end%>
这是我的控制器:
定义更新封面
@utilisateur = Utilisateur.find(current_user.id)
@utilisateur.banner = 参数[:utilisateur[:banner]]
@utilisateur.save!结束
我知道并且理解为什么此功能不起作用,但我不知道该怎么做。在网上找不到准确的答案或提示。
这是请求:
在 2014-04-04 12:26:53 +0200 为 127.0.0.1 开始 POST "/updatecover" 由 UtilisateursController#updatecover 作为 HTML 参数处理: {"utf8"=>"✓", "authenticity_token"=>"rncjd3meVuQuSLHxPrwbtEF7Ye0hH7pcNxcLoYy2oeQ=", "utilisateur"=>{"横幅"=>#, @original_filename="2048.jpg", @content_type="image/jpeg", @headers="内容配置:表单数据; name=\"utilisateur[横幅]\";文件名= \"2048.jpg\"\r\n内容类型: image/jpeg\r\n">}, "commit"=>"Save Utilisateur"}
这是我的路线:
匹配 "updatecover" => "utilisateurs#updatecover", :as => :updatecover,:via => [:get,:post]
我认为我的错误是基本的。但是我查不出来。
谢谢
这是完整的日志
在 2014-04-04 15:42:19 +0200 为 127.0.0.1 开始 POST "/updatecover" 由 UtilisateursController#updatecover 作为 HTML 参数处理: {"utf8"=>"✓", "authenticity_token"=>"rncjd3meVuQuSLHxPrwbtEF7Ye0hH7pcNxcLoYy2oeQ=", "utilisateur"=>{"banner"=>#, @original_fil ename="shift-s3ctor-airstrip-attack-october-2013-preview-36304 (1).jpg", @content_type="image/jpeg", @headers="Content-Disposit ion: 表格数据; name=\"utilisateur[横幅]\"; 文件名=\“shift-s3ctor-airstrip-attack-october-2013-preview-36304 (1).jpg\"\r\nC ontent-Type: image/jpeg\r\n">}, "commit"=>"保存 Utilisateur"} Utilisateur 负载 (0.3ms) SELECT "utilisateurs".* FROM "utilisateurs" WHERE "utilisateurs"."id" = $1 LIMIT 1 [["id", 7]] CACHE (0.0ms) SELECT "utilisateurs".* FROM "utilisateurs" WHERE "utilisateurs"."id" = $1 LIMIT 1 [["id", 7]] CACHE (0.0ms) SELECT “utilisateurs”。*来自“utilisateurs”,其中“utilisateurs”。“id”= $1 LIMIT 1 [["id", 7]] Completed 500 Internal Server Error in 6ms
TypeError(没有将 Symbol 隐式转换为 Integer): app/controllers/utilisateurs_controller.rb:28:in []'
app/controllers/utilisateurs_controller.rb:28:inupdatecover'
【问题讨论】:
-
打印是什么意思?
-
user.banner.url 的输出是什么
-
当前输出为 nil ,因为表单提交不会触发上传。事实上,它什么也没做。
-
它是一样的。我是法国人,utilisateur 是用户,我编辑我的帖子。
-
I know and i understand why this function is not working, but i don't know what to do.是什么意思?为什么你认为你的代码不起作用?另外,能否分享一下updatecover时生成的完整服务器日志。