路线.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_name”变量。
重要提示:我宁愿保留编辑方法的默认行为,而不覆盖它,也不为它编写自己的代码。