2012-05-10 5 views
15

मैं अपने प्रोफाइल पेज पर अवतार अपलोड फ़ील्ड जोड़ने की कोशिश कर रहा हूं, लेकिन जैसे ही मैं इसे :html => {:multipart => true} जोड़ता हूं, यह एक वाक्यविन्यास त्रुटि थूकता है।फॉर्म_for with: multipart => सत्य स्पिट्स

<%= form_for(@user), :html => { :multipart => true } do |f| %> 
<%= render 'shared/error_messages', object: f.object %> 

<%= f.label :name %> 
<%= f.text_field :name %> 

<%= f.label :email %> 
<%= f.email_field :email %> 

<%= f.label :password %> 
<%= f.password_field :password %> 

<%= f.label :password_confirmation, "Confirmation" %> 
<%= f.password_field :password_confirmation %> 


<%= f.label :avatar %> 
    <%= f.file_field :avatar %> 

    <%= f.submit "Save changes", class: "btn btn-large btn-primary" %> 
<% end %> 

त्रुटि है:

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

उत्तर

34

multipart => true साथ सहायक या यह इस तरह होना चाहिए:

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

form_for(@user) में ब्रांड्स वास्तव में रूबी दुभाषिया को बता रहा है कि फ़ंक्शन केवल एक पैरामीटर के साथ लागू होता है, और आप रूबी में किसी विधि में गलत संख्या में तर्क नहीं दे सकते हैं।

1

मुझे लगता है कि आप छवियों को अपलोड करने के लिए या तो 'पेपरक्लिप' या 'कैरियरवेव' का उपयोग कर रहे हैं। तो, इसे आजमाएं:

<%= form_for @user, : url => users_path, :html => {:multipart => true} do |f| %> 
संबंधित मुद्दे