所以,我正在使用载波来允许用户上传个人资料图片。现在最终,我希望用户能够点击图片并在profile.html.haml页面中即时上传新图片。
所以,我尝试了下面添加一个带有put动作的表单,让用户可以动态更新图像,而无需转到edit.html.haml页面。
但是,我遇到了这个错误:
Could not find a valid mapping for nil
Extracted source (around line #8):
<%= form_for(@user, :url => registration_path(@user), :html => { :method => :put }, :html => {:multipart => true}) do |f| %>
<%= link_to (image_tag current_user.profile_image_url(:thumb).to_s), edit_account_path(current_user)%>
<% end %>
我哪里出错了?
或者我已经尝试过这可能完全关闭了:
<%= link_to (image_tag current_user.profile_image_url(:thumb).to_s), f.file_field :profile_image%>
给出了这个错误:
Sites/Friendiose-master/app/views/home/landing_welcome.html.erb:9: syntax error, unexpected tSYMBEG, expecting ')'
...l(:thumb).to_s), f.file_field :profile_image);@output_buffer...
先谢谢。
答案 0 :(得分:0)
首先,您认为这个错误可能是什么?最常见的错误:
Sites/Friendiose-master/app/views/home/landing_welcome.html.erb:9: syntax error, unexpected tSYMBEG, expecting ')'
...l(:thumb).to_s), f.file_field :profile_image);@output_buffer...
我不打算给你完整的答案,但教你思考如何调试它。
https://github.com/carrierwaveuploader/carrierwave
这是carrierwave的文档。显示图像时,它显示以下内容:
<%= form_for @user, :html => {:multipart => true} do |f| %>
<p>
<label>My Avatar</label>
<%= image_tag(@user.avatar_url) if @user.avatar? %>
<%= f.file_field :avatar %>
<%= f.hidden_field :avatar_cache %>
</p>
<% end %>
一个提示,这不是我的讽刺,但习惯于阅读更多和谷歌搜索更多。我没有使用过回形针,但我可以看到2分钟的谷歌搜索问题。
Ruby on Rails using link_to with image_tag
如何创建带图像的链接。
从该链接看看你们之间的区别:
<%= link_to (image_tag current_user.profile_image_url(:thumb).to_s), edit_account_path(current_user)%>
和正确的方法:
<%=link_to( image_tag(participant.user.profile_pic.url(:small)), user_path(participant.user), :class=>"work") %>
错误说你错过了什么?
直接给人们一个答案并不总是很好,但关键是如何弄明白。