我有一个标准的设计编辑用户表单:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password, :autocomplete => "off" %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<p>Current Photo</p>
<%= image_tag @user.photo.url %>
<%= f.file_field :photo %>
<div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %></div>
<div><%= f.submit "Update" %></div>
<% end %>
现在,Rails 显然是因为这条线而抱怨:<%= image_tag @user.photo.url %>
因为在设计控制器的编辑操作中没有@user。通常,我只需将 @user = current_user 放入控制器即可完成。
目标是在用户上传新照片之前向用户展示他们当前的照片是什么。最好的方法是什么?