【问题标题】:paperclip duplicate url error回形针重复 url 错误
【发布时间】:2012-02-02 09:43:05
【问题描述】:

我正在尝试使用回形针通过 ajax 上传图像。

我正在使用 qqfileuploader 来处理 ajax 内容,但它似乎没有可以为发布请求定义参数名称的选项。

ajax post发来的参数是

qqfile=文件名.jpg

所以在我的模型中,我将 qqfile 别名为照片

别名属性 :qqfile, :photo has_attached_file :照片 attr_accessible :title, :photo

当我通过 ajax 上传文件时,出现以下错误

参数:{"qqfile"=>"Penguins.jpg"} 警告:无法验证 CSRF 令牌的真实性 创建范围:页面。覆盖现有方法 User.page。 用户负载 (1.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 创建范围:页面。覆盖现有方法 RoleUser.page。 创建范围:页面。覆盖现有方法 Role.page。 角色加载 (1.4ms) SELECT `roles`.* FROM `roles` INNER JOIN `role_users` ON `roles`.`id` = `role_users`.`role_id` WHERE `role_users`.`user_id` = 1 SQL (0.7ms) 开始 创建范围:页面。覆盖现有方法 Task.page。 [回形针] 带有 /system/:attachment/:id/:style/:filename 的照片的 URL 重复。这将与配方类中定义的附件冲突

我不确定 CSRF 令牌是否会成为问题,页面上有一个令牌,所以也许我只需要发送它,我假设我可以使用 javascript 获取它是一个变量?

但是重复的 url 是怎么回事???我没有正确混叠吗?出于某种原因,我不能给回形针对象起别名吗?

我的控制器也很简单

定义创建 @recipe = Recipe.new(params[:recipe]) @recipe.author_id=current_user.id 如果@recipe.save 返回渲染:json => @recipe 别的 return render :text => '保存配方时出错' 结尾 结尾

【问题讨论】:

  • 您能否提供(所有)has_attached_file 的确切呼叫?
  • @mosch,我添加了 has_attached_file 和 attr_accessible,据我所知,这只是基础知识。

标签: ajax ruby-on-rails-3 file-upload paperclip alias


【解决方案1】:

Rails 根据用户会话为 POST 事件生成安全令牌。如果该令牌丢失或与预期不匹配,会话将被重置。看到这个:

http://guides.rubyonrails.org/security.html#csrf-countermeasures

至于重复的网址,您确定您的网址格式足够具体吗?在我看来,如果您为同一模型实例上传具有相同名称的文件,您就会遇到问题。查看您的控制器代码会有所帮助。

【讨论】:

  • 感谢@yock,我最近一直在处理 csrf 问题,刚刚看到你的评论,所以我确实需要以某种方式传递该属性,但还没有完全发挥作用然而。这个过程应该可以工作eunikorn.blogspot.com/2011/07/…,但到目前为止还没有。我已经包含了我的控制器代码,这是非常基本的,所以也不应该是问题的根源,但也许。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 2018-04-09
相关资源
最近更新 更多