Form_for with:multipart => true吐出

我正在尝试将“头像上传”字段添加到我的个人资料页面,但是只要我添加:html => {:multipart => true} ,就会出现语法错误。

  { :multipart => true } do |f| %>              

错误是:

 syntax error, unexpected tASSOC, expecting keyword_end ...end= form_for(@user), :html => { :multipart => true } do |f... ... ^ 

http://guides.rubyonrails.org/form_helpers.html#uploading-files

它是一个form_tag帮助器, multipart => true或者只是form_for

 <%= form_tag({:action => :upload}, :multipart => true) do %> <%= file_field_tag 'picture' %> <% end %> <%= form_for @person do |f| %> <%= f.file_field :picture %> <% end %> 

它应该是这样的:

 form_for @user, :html => { :multipart => true } do |f| 

form_for(@user)的括号实际上是告诉Ruby解释器只使用一个参数调用该函数,并且您不能在Ruby中的方法中传递错误数量的参数。

我假设您要么使用’paperclip’或”carrierwave’来上传图像。 所以,试试这个:

 <%= form_for @user, : url => users_path, :html => {:multipart => true} do |f| %>