所以我按照这里的说明进行操作:http://doganberktas.com/2010/09/14/amazon-s3-and-paperclip-rails-3/
在我的个人资料模型中,我有:
attr_accessor :pic_file_name (this was requested on first attempt)
has_attached_file :pic,
:styles => {
:thumb=> "100x100#",
:small => "400x400>" },
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => "/:style/:id/:filename"
我有资源:路线中的个人资料。
我的观点如下:
<%= form_for :profile, @profile, :url => profile_path, :html => { :multipart => true } do |f| %>
<%= f.file_field :pic %>
<%= f.submit :class => "button-style", :value => "Upload File" %>
<% end %>
当我查看该页面时,我收到此错误:没有路由匹配{:action =&gt;“show”,:controller =&gt;“profiles”}。虽然我可以向你保证,但我有一个配置文件控制器,可以显示动作。
如果我将视图更改为
<%= form_for :profile, @profile, :url => @profile, :html => { :multipart => true } do |f| %>
<%= f.file_field :pic %>
<%= f.submit :class => "button-style", :value => "Upload File" %>
<% end %>
它告诉我参数数量错误(2个为3)
然后我将视图更改为
<%= form_for @profile, :url => profile_path, :html => { :multipart => true } do |f| %>
<%= f.file_field :pic %>
<%= f.submit :class => "button-style", :value => "Upload File" %>
<% end %>
页面加载,我可以上传图片。但是稍后尝试使用以下方式打印它:
&lt;%= current_user.profile.pic%&gt;给我:/pics/original/missing.png(和profile.pic.url一样)
答案 0 :(得分:2)
这似乎超出了愚蠢(因为上面对我有用) - 但这解决了它:
将视图更改为:
<%= form_for(@profile, :html => { :multipart => true }) do |f| %>
答案 1 :(得分:0)
感谢您的解决方案。顺便说一句,
<%= form_for (@profile, :html => { :multipart => true }) do |f| %>
对我不起作用,但是
<%= form_for(@profile, :html => { :multipart => true }) do |f| %>
做得好。我form_for
之后的那个空间似乎打破了局面,可能是我遇到问题的原因。