routes.rb中:
devise_for :users, :controllers => {
:registrations => 'users',
:sessions => 'sessions',
:confirmations => 'confirmations',
:passwords => 'passwords'
}
“编辑”操作的视图:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= resource.inspect %>
resource.inspect将所有用户的字段显示为nil。
控制器:
def edit
resource = params[:id].nil? ? current_user : User.find_by_id(params[:id])
end
使用什么而不是“resource =”来使这个东西工作?我希望视图保留默认的“resource”和“resource_name”变量。
重要提示:我希望保留编辑方法的默认行为,而不会覆盖它,也不会为其编写自己的代码。